sourcecode

iPhone/iPad의 UI 레이블에서 굵고 기울임꼴로 설정하려면 어떻게 해야 합니까?

codebag 2023. 5. 23. 21:53
반응형

iPhone/iPad의 UI 레이블에서 굵고 기울임꼴로 설정하려면 어떻게 해야 합니까?

굵고기꼴로설정방는법하에서 굵고 로 설정하려면 ?UILabeliPhone/iPad 서에?포럼을 검색해봤지만 아무 도움이 되지 않았습니다.누가 저를 도와주실 수 있나요?

글꼴 이름을 가지고 놀려고 하지 마십시오.글꼴 설명자를 사용하면 이름이 필요하지 않습니다.

UILabel * label = [[UILabel alloc] init]; // use your label object instead of this
UIFontDescriptor * fontD = [label.font.fontDescriptor
            fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold
                            | UIFontDescriptorTraitItalic];
label.font = [UIFont fontWithDescriptor:fontD size:0];

size:0'크기를 그대로 유지'를 의미합니다.

Swift를 사용하여 다음 확장을 시도합니다.

extension UIFont {

    func withTraits(traits:UIFontDescriptorSymbolicTraits...) -> UIFont {
        let descriptor = self.fontDescriptor()
            .fontDescriptorWithSymbolicTraits(UIFontDescriptorSymbolicTraits(traits))
        return UIFont(descriptor: descriptor, size: 0)
    }

    func boldItalic() -> UIFont {
        return withTraits(.TraitBold, .TraitItalic)
    }

}

그런 다음 다음과 같이 사용할 수 있습니다.

myLabel.font = myLabel.font.boldItalic()

또는 축약과 같은 추가적인 특성을 추가할 수도 있습니다.

myLabel.font = myLabel.font.withTraits(.TraitCondensed, .TraitBold, .TraitItalic)

Swift 4에 대한 업데이트:

extension UIFont {
  var bold: UIFont {
    return with(traits: .traitBold)
  } // bold

  var italic: UIFont {
    return with(traits: .traitItalic)
  } // italic

  var boldItalic: UIFont {
    return with(traits: [.traitBold, .traitItalic])
  } // boldItalic


  func with(traits: UIFontDescriptorSymbolicTraits) -> UIFont {
    guard let descriptor = self.fontDescriptor.withSymbolicTraits(traits) else {
      return self
    } // guard

    return UIFont(descriptor: descriptor, size: 0)
  } // with(traits:)
} // extension

다음과 같이 사용합니다.

myLabel.font = myLabel.font.bold

또는

myLabel.font = myLabel.font.italic

또는

myLabel.font = myLabel.font.with(traits: [ .traitBold, .traitCondensed ])

Swift 5에 대한 업데이트

extension UIFont {
    var bold: UIFont {
        return with(.traitBold)
    }

    var italic: UIFont {
        return with(.traitItalic)
    }

    var boldItalic: UIFont {
        return with([.traitBold, .traitItalic])
    }



    func with(_ traits: UIFontDescriptor.SymbolicTraits...) -> UIFont {
        guard let descriptor = self.fontDescriptor.withSymbolicTraits(UIFontDescriptor.SymbolicTraits(traits).union(self.fontDescriptor.symbolicTraits)) else {
            return self
        }
        return UIFont(descriptor: descriptor, size: 0)
    }

    func without(_ traits: UIFontDescriptor.SymbolicTraits...) -> UIFont {
        guard let descriptor = self.fontDescriptor.withSymbolicTraits(self.fontDescriptor.symbolicTraits.subtracting(UIFontDescriptor.SymbolicTraits(traits))) else {
            return self
        }
        return UIFont(descriptor: descriptor, size: 0)
    }
}
sectionLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:18];

'fontWithName' 특성 대신 설정할 수 있는 글꼴 이름 목록이 있습니다.링크는 여기에 있습니다.

@편집자가 이것을 살펴봅니다.

myLabel.font = [UIFont boldSystemFontOfSize:16.0f]
myLabel.font = [UIFont italicSystemFontOfSize:16.0f];

원하는 시간에 위의 항목 중 하나를 사용합니다.

글꼴 필드에서 문자 "T"를 눌러 레이블의 글꼴 스타일, 패밀리, 크기를 설정할 수 있습니다.

레이블 글꼴 설정

스위프트 3

굵게 표시:

let bondFont = UIFont.boldSystemFont(ofSize:UIFont.labelFontSize)

기울임꼴:

let italicFont = UIFont.italicSystemFont(ofSize:UIFont.labelFontSize)

iOS 7 시스템 기본 글꼴을 사용하는 경우 시스템 기본 글꼴을 유지하려면 helveticnew bold를 사용합니다.

    [titleText setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0]];

또는 간단히 다음과 같이 부를 수 있습니다.

    [titleText setFont:[UIFont boldSystemFontOfSize:16.0]];

라벨과 버튼에 볼드와 이탈릭을 모두 적용해야 하는 동일한 문제가 있습니다.다음 코드를 사용하여 이러한 효과를 얻을 수 있습니다.

myLabel.font = [UIFont fontWithName:@"Arial-BoldItalic" size:30.0];

특성을 추가하거나 제거할 수 있는 maksymilian wojakowski의 반응을 변형했습니다.

extension UIFont {

    func withTraits(_ traits:UIFontDescriptorSymbolicTraits...) -> UIFont {
        let descriptor = self.fontDescriptor
            .withSymbolicTraits(UIFontDescriptorSymbolicTraits(traits).union(self.fontDescriptor.symbolicTraits))
        return UIFont(descriptor: descriptor!, size: 0)
    }
    func withoutTraits(_ traits:UIFontDescriptorSymbolicTraits...) -> UIFont {
        let descriptor = self.fontDescriptor
            .withSymbolicTraits(  self.fontDescriptor.symbolicTraits.subtracting(UIFontDescriptorSymbolicTraits(traits)))
        return UIFont(descriptor: descriptor!, size: 0)
    }
    func bold() -> UIFont {
        return withTraits( .traitBold)
    }

    func italic() -> UIFont {
        return withTraits(.traitItalic)
    }

    func noItalic() -> UIFont {
        return withoutTraits(.traitItalic)
    }
    func noBold() -> UIFont {
        return withoutTraits(.traitBold)
    }
}

모범적인

label.font = label.font.italic().bold()

이것은 셀을 재사용할 때 유용하며 이전 셀에서 레이블에 부착한 기울임꼴을 제거하고자 할 때 유용합니다.

 btn.titleLabel.font=[UIFont fontWithName:@"Helvetica neue" size:10];
 btn.titleLabel.font =  [UIFont boldSystemFontOfSize:btnPrev.titleLabel.font.pointSize+3];

굵은 레이블/버튼 글꼴도 사용할 수 있습니다.

예: 굵은 글씨 텍스트:

UILabel *titleBold = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 200, 30)];
UIFont* myBoldFont = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
[titleBold setFont:myBoldFont];

예: 이탤릭체 텍스트:

UILabel *subTitleItalic = [[UILabel alloc] initWithFrame:CGRectMake(10, 35, 200, 30)];
UIFont* myItalicFont = [UIFont italicSystemFontOfSize:[UIFont systemFontSize]];
[subTitleItalic setFont:myItalicFont];

비록 @tolbard가 제공하는 대답은 놀랍고 잘 작동하지만요!

코드 한 줄만으로 달성할 수 있는 것에 대한 확장을 만드는 것은 오버킬이 될 것이라고 생각합니다.

동일한 텍스트에 대해 굵게 표시하거나 이탤릭체표시할 수 있습니다.label다음을 사용하여 글꼴 속성을 설정합니다.UIFontDescriptorSwift 4.0을 사용하는 아래 예제에서 아래와 같이 표시됩니다.

label.font = UIFont(descriptor: UIFontDescriptor().withSymbolicTraits([.traitBold, .traitItalic])!, size: 12)

기타 옵션은 다음과 같습니다.

traitLooseLeading
traitTightLeading
traitUIOptimized
traitVertical
traitMonoSpace
traitCondensed
traitExpanded

그 상징적인 특징들이 무엇을 의미하는지에 대한 더 많은 정보를 위하여?여기에 방문

maksymilian Wojakowski의 멋진 답변 업데이트 3.

extension UIFont {
    func withTraits(traits:UIFontDescriptorSymbolicTraits...) -> UIFont? {
        guard let descriptorL = self.fontDescriptor.withSymbolicTraits(UIFontDescriptorSymbolicTraits(traits)) else{
            return nil
        }
        return UIFont(descriptor: descriptorL, size: 0)
    }

    func boldItalic() -> UIFont? {
        return withTraits(traits: .traitBold, .traitItalic)
    }
}

저는 최근에 UIFont API의 제한 사항과 해결 방법에 대해 블로그에 글을 올렸습니다.여기서 보실 수 있습니다.

제가 제공하는 코드로 원하는 UI 글꼴을 쉽게 얻을 수 있습니다.

UIFont *myFont = [FontResolver fontWithDescription:@"font-family: Helvetica; font-weight: bold; font-style: italic;"];

그런 다음 다음 다음을 사용하여 UI 레이블(또는 기타 레이블)로 설정합니다.myLabel.font = myFont;

이 답변에서 이미 언급했듯이 올바른 글꼴 이름만 있으면 됩니다.저는 iOSFonts.com 이 어떤 이름을 사용해야 하는지 정확히 알 수 있는 가장 유용한 자료라는 것을 알게 되었습니다.

이것은 매우 간단합니다.여기 코드가 있습니다.

[yourLabel setFont:[UIFont boldSystemFontOfSize:15.0];

이게 도움이 될 겁니다.

굵게 표시된 텍스트는 다른 수준의 정보 아키텍처 방식으로 간주되는 경우가 많기 때문에 굵게 표시되고 한 줄에 규칙적으로 표시되지 않으므로 두 레이블/텍스트 보기, 하나는 규칙적이고 굵은 기울임꼴로 구분할 수 있습니다.그리고 편집기를 사용하여 글꼴 스타일을 선택합니다.

스위프트 5와 함께

스타일 = BOLD의 경우

label.font = UIFont(name:"HelveticaNeue-Bold", size: 15.0)

스타일 = 중간

label.font = UIFont(name:"HelveticaNeue-Medium", size: 15.0)

스타일 = 얇은 경우

label.font = UIFont(name:"HelveticaNeue-Thin", size: 15.0)

말씀드리고 싶은 게 있는데요

UIFont.systemFont(ofSize: 16, weight: UIFont.Weight.bold)
UIFont.boldSystemFont(ofSize: 16)

그들은 다른 결과를 가지고 있습니다...

Swift 5용으로 업데이트되었으며 장치의 기본 크기 범주를 준수합니다.

// Bold
label.font = UIFont.systemFont(ofSize: UIFont.preferredFont(forTextStyle: .body).pointSize, weight: .bold)

// Italic
label.font = UIFont.italicSystemFont(ofSize: UIFont.preferredFont(forTextStyle: .body).pointSize)

여기에 게시된 다른 답변은 좋지만 크기가 하드 코딩된 포인트가 있습니다.

언급URL : https://stackoverflow.com/questions/4713236/how-do-i-set-bold-and-italic-on-uilabel-of-iphone-ipad

반응형