Respostas:
sectionLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:18];
Há uma lista de nomes de fontes que você pode definir no lugar do atributo 'fontWithName'. O link está aqui
Não tente brincar com os nomes das fontes. Usando o descritor de fontes, você não precisa de nomes:
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
significa 'manter o tamanho como está'
Com o Swift, tente a seguinte extensão:
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)
}
}
Então você pode usá-lo desta maneira:
myLabel.font = myLabel.font.boldItalic()
ou até adicionar características adicionais, como Condensado:
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
Use-o da seguinte maneira:
myLabel.font = myLabel.font.bold
ou
myLabel.font = myLabel.font.italic
ou
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)
provavelmente deve return withTraits(.TraitBold, .TraitItalic)
corresponder ao nome da função.
@ Eddinator, dê uma olhada nisso ..
myLabel.font = [UIFont boldSystemFontOfSize:16.0f]
myLabel.font = [UIFont italicSystemFontOfSize:16.0f];
use qualquer uma das opções acima na hora que desejar
Você pode definir qualquer estilo de fonte, família, tamanho para o rótulo, clicando na letra "T" no campo Fonte .
Eu tenho o mesmo problema que precisa aplicar negrito e itálico em um rótulo e botão. Você pode simplesmente usar o seguinte código para obter esse efeito:
myLabel.font = [UIFont fontWithName:@"Arial-BoldItalic" size:30.0];
Com a fonte padrão do sistema iOS 7, você usará helvetica neue bold se quiser manter a fonte padrão do sistema.
[titleText setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0]];
Ou você pode simplesmente chamá-lo:
[titleText setFont:[UIFont boldSystemFontOfSize:16.0]];
Swift 3
Negrito:
let bondFont = UIFont.boldSystemFont(ofSize:UIFont.labelFontSize)
Itálico:
let italicFont = UIFont.italicSystemFont(ofSize:UIFont.labelFontSize)
btn.titleLabel.font=[UIFont fontWithName:@"Helvetica neue" size:10];
btn.titleLabel.font = [UIFont boldSystemFontOfSize:btnPrev.titleLabel.font.pointSize+3];
você também pode usar a fonte de rótulo / botão em negrito
Fiz uma variação da resposta de maksymilian wojakowski onde você pode adicionar ou remover uma característica
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)
}
}
exemplo
label.font = label.font.italic().bold()
útil ao reutilizar a célula e você deseja remover o itálico colocado em um rótulo em uma célula anterior
Recentemente, escrevi um post sobre as restrições da API do UIFont e como resolvê-lo. Você pode ver aqui
Com o código que forneço lá, você pode obter o UIFont desejado da maneira mais fácil:
UIFont *myFont = [FontResolver fontWithDescription:@"font-family: Helvetica; font-weight: bold; font-style: italic;"];
E defina-o como UILabel (ou o que for) com:
myLabel.font = myFont;
Como já foi mencionado nessas respostas, você só precisa do nome da fonte correto . Acho que o iOSFonts.com é o recurso mais útil para saber exatamente qual nome usar.
Exemplo de texto em negrito:
UILabel *titleBold = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 200, 30)];
UIFont* myBoldFont = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
[titleBold setFont:myBoldFont];
Exemplo de texto em itálico:
UILabel *subTitleItalic = [[UILabel alloc] initWithFrame:CGRectMake(10, 35, 200, 30)];
UIFont* myItalicFont = [UIFont italicSystemFontOfSize:[UIFont systemFontSize]];
[subTitleItalic setFont:myItalicFont];
Embora a resposta fornecida por @tolbard seja incrível e funcione bem!
Sinto que criar uma extensão para algo que pode ser alcançado em apenas uma linha de código seria um exagero.
Você pode obter um estilo em negrito e itálico para o mesmo texto label
configurando a propriedade da fonte usando UIFontDescriptor
como mostrado abaixo no exemplo abaixo usando o Swift 4.0 :
label.font = UIFont(descriptor: UIFontDescriptor().withSymbolicTraits([.traitBold, .traitItalic])!, size: 12)
Outras opções incluem:
traitLooseLeading
traitTightLeading
traitUIOptimized
traitVertical
traitMonoSpace
traitCondensed
traitExpanded
Para mais informações sobre o significado desses traços simbólicos? visite aqui
Atualizando a incrível resposta de Maksymilian Wojakowski para o 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)
}
}
Muitas vezes, o texto em negrito é considerado em uma arquitetura de informações em outro nível e, portanto, não possui negrito e regular em uma linha, portanto, você pode dividi-lo em dois rótulos / textViews, um regular e em negrito e itálico. E use o editor para escolher os estilos de fonte.