Как мне установить полужирное и курсивное начертание на UILabel ни на iPhone или iPad?
Как установить жирный и курсив на UILabel
из iPhone / iPad?
Я обыскал форум, но мне ничего не помогло. Кто-нибудь может мне помочь?
16 ответов:
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()
или даже добавить дополнительные черты, такие как сгущенное:
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 ])
@Edinator взгляните на это..
myLabel.font = [UIFont boldSystemFontOfSize:16.0f] myLabel.font = [UIFont italicSystemFontOfSize:16.0f];
используйте любой из вышеперечисленных в то время, когда вы хотите
У меня та же проблема, что нужно применять как полужирный, так и курсив на этикетке и кнопке. Вы можете просто использовать следующий код для достижения этого эффекта:
myLabel.font = [UIFont fontWithName:@"Arial-BoldItalic" size:30.0];
с системным шрифтом iOS 7 по умолчанию вы будете использовать helvetica neue bold, если хотите сохранить системный шрифт по умолчанию.
[titleText setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0]];
или вы можете просто назвать это:
[titleText setFont:[UIFont boldSystemFontOfSize:16.0]];
посмотреть: этой URL
btn.titleLabel.font=[UIFont fontWithName:@"Helvetica neue" size:10]; btn.titleLabel.font = [UIFont boldSystemFontOfSize:btnPrev.titleLabel.font.pointSize+3];
вы можете сделать жирный шрифт метки / кнопки также с помощью этого
Я сделал вариацию ответа Максимилиана Войковского где вы можете добавить или удалить трейт(с)
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) } }
exemple
label.font = label.font.italic().bold()
это полезно при повторном использовании ячейки, и вы хотите удалить курсив, который вы положили на метку в предыдущей ячейке
недавно я написал сообщение в блоге об ограничениях API UIFont и о том, как его решить. Вы можете увидеть его на здесь
С кодом, который я предоставляю там, вы можете получить желаемый UIFont так же просто, как:
UIFont *myFont = [FontResolver fontWithDescription:@"font-family: Helvetica; font-weight: bold; font-style: italic;"];
а затем установите его на свой UILabel (или что-то еще) с помощью:
myLabel.font = myFont;
Как уже упоминалось в этих ответах, вам просто нужно правильное имя шрифта. Я нахожу, что 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];
Это очень просто. Вот этот код.
[yourLabel setFont:[UIFont boldSystemFontOfSize:15.0];
Это вам поможет.
Swift 3
жирным:
let bondFont = UIFont.boldSystemFont(ofSize:UIFont.labelFontSize)
Курсив:
let italicFont = UIFont.italicSystemFont(ofSize:UIFont.labelFontSize)
обновление Wojakowski Такуя'ы удивительный ответ для swift 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) }
}