Как мне установить жирный и курсив на uilabel of iPhone/iPad?
-
11-10-2019 - |
Вопрос
Как мне установить жирным шрифтом и курсивом UILabel
iPhone/iPad? Я искал форум, но мне ничего не помогло. Кто -нибудь может мне помочь?
Решение
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 ])
Swift 5
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)
}
@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]];
Swift 3
Смелый:
let bondFont = UIFont.boldSystemFont(ofSize:UIFont.labelFontSize)
Курсив:
let italicFont = UIFont.italicSystemFont(ofSize:UIFont.labelFontSize)
посмотри на: это 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)
}
}
экзамен
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
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)
}
}
Хотя ответ, предоставленный @Tolbard, потрясающий и хорошо работает!
Я чувствую, что создание расширения для чего -то, что может быть достигнуто только в линии кода, было бы чрезмерным убийством.
Ты можешь получить смелый также курсив стиль для того же текста в вашем label
Настройка свойства шрифта с помощью UIFontDescriptor
Как показано ниже в примере ниже, используя Swift 4.0:
label.font = UIFont(descriptor: UIFontDescriptor().withSymbolicTraits([.traitBold, .traitItalic])!, size: 12)
Другие варианты включают:
traitLooseLeading
traitTightLeading
traitUIOptimized
traitVertical
traitMonoSpace
traitCondensed
traitExpanded
Для получения дополнительной информации о том, что означают эти символические черты? Посетите здесь
Много раз жирный жирный текст рассматривается информационной архитектурой на другом уровне и, следовательно, не имеет жирного шрифта и регулярного в одной строке, поэтому вы можете разделить его на две метки/текстовые обзоры, один обычный и жирный курсив. И используйте редактор, чтобы выбрать стили шрифта.
С Swift 5
Для стиля = жирным шрифтом
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)
У них другой результат ...