Відповіді:
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)
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)
повинна відповідати імені функції.
@Edinator подивіться на це ..
myLabel.font = [UIFont boldSystemFontOfSize:16.0f]
myLabel.font = [UIFont italicSystemFontOfSize:16.0f];
використовуйте будь-яке з перерахованих вище за потрібний час
Ви можете встановити будь-який стиль шрифту, сім'ю, розмір етикетки, натиснувши на літеру "T" у полі шрифту .
У мене однакова проблема, яку потрібно застосувати як жирний, так і курсивний на мітці та кнопці. Ви можете просто використовувати наступний код для досягнення цього ефекту:
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]];
btn.titleLabel.font=[UIFont fontWithName:@"Helvetica neue" size:10];
btn.titleLabel.font = [UIFont boldSystemFontOfSize:btnPrev.titleLabel.font.pointSize+3];
ви можете зробити також жирний шрифт мітки / кнопки, використовуючи це
Я змінив відповідь maksimmilian 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()
Це корисно при повторному використанні комірки, і ви хочете видалити курсив, який ви нанесли на мітку в попередній комірці
Нещодавно я написав допис у блозі про обмеження 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];
Хоча відповідь, надана @tolbard, дивовижна і працює добре!
Я вважаю, що створення розширення для чогось, що можна досягти лише за допомогою рядка коду, було б надмірним вбивством.
Ви можете отримати жирний і курсивний стиль для того ж тексту у вашому label
, встановивши властивість шрифту, використовуючи, UIFontDescriptor
як показано нижче в прикладі нижче, використовуючи Swift 4.0 :
label.font = UIFont(descriptor: UIFontDescriptor().withSymbolicTraits([.traitBold, .traitItalic])!, size: 12)
Інші варіанти включають:
traitLooseLeading
traitTightLeading
traitUIOptimized
traitVertical
traitMonoSpace
traitCondensed
traitExpanded
Для отримання додаткової інформації про те, що означають ці символічні риси? завітайте сюди
Оновлення дивовижної відповіді Максиміліана Вояковського за швидку 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)
}
}
Багато разів напівжирний текст розглядається в інформаційній архітектурній формі на іншому рівні і, таким чином, не є жирним і регулярним в одному рядку, тому ви можете розділити його на дві мітки / textViews, одну звичайну та на жирному курсиві. І за допомогою редактора виберіть стилі шрифту.