답변:
sectionLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:18];
'fontWithName'속성 대신 설정할 수있는 글꼴 이름 목록이 있습니다.
서체 이름으로 연주하지 마십시오. 글꼴 설명자를 사용하면 이름이 필요하지 않습니다.
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()
또는 Condensed와 같은 추가 특성을 추가하십시오.
myLabel.font = myLabel.font.withTraits(.TraitCondensed, .TraitBold, .TraitItalic)
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 ])
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)
}
}
return withTraits(.TraitBold, .TraitCondensed)
아마도 return withTraits(.TraitBold, .TraitItalic)
함수 이름과 일치해야합니다.
레이블과 버튼에 굵게 및 기울임 꼴을 모두 적용 해야하는 동일한 문제가 있습니다. 다음 코드를 사용하여이 효과를 얻을 수 있습니다.
myLabel.font = [UIFont fontWithName:@"Arial-BoldItalic" size:30.0];
btn.titleLabel.font=[UIFont fontWithName:@"Helvetica neue" size:10];
btn.titleLabel.font = [UIFont boldSystemFontOfSize:btnPrev.titleLabel.font.pointSize+3];
이것을 사용하여 굵은 레이블 / 버튼 글꼴을 할 수 있습니다
특성을 추가하거나 제거 할 수있는 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()
셀을 재사용 할 때 유용하며 이전 셀의 레이블에 붙인 이탤릭체를 제거하려는 경우
이 답변에서 이미 언급했듯이 올바른 글꼴 이름 만 있으면 됩니다. 나는 것을 발견 iOSFonts.com가 사용 정확히 이름을 알고위한 가장 유용한 정보를 얻을 수 있습니다.
굵은 체 텍스트 예 :
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
사용 글꼴 속성을 설정하여 UIFontDescriptor
사용하여 아래의 예에서 아래와 같이 스위프트 4.0 :
label.font = UIFont(descriptor: UIFontDescriptor().withSymbolicTraits([.traitBold, .traitItalic])!, size: 12)
다른 옵션은 다음과 같습니다.
traitLooseLeading
traitTightLeading
traitUIOptimized
traitVertical
traitMonoSpace
traitCondensed
traitExpanded
그 상징적 특성이 무엇을 의미하는지에 대한 자세한 정보는? 여기를 방문하십시오
신속한 3에 대한 Maksymilian Wojakowski 의 멋진 답변 업데이트
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)
}
}
굵게 표시된 텍스트는 다른 수준에서는 정보 아키텍처 방식으로 간주되므로 한 줄에 굵게 표시되고 규칙적이지 않으므로 두 개의 레이블 / 텍스트보기 (일반 및 굵은 기울임 꼴)로 분할 할 수 있습니다. 그리고 편집기를 사용하여 글꼴 스타일을 선택하십시오.