Comment définir les caractères gras et italiques sur UILabel
de l'iPhone/iPad? Quelqu'un pourrait-il m'aider?
sectionLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:18];
Il existe une liste de noms de police que vous pouvez définir à la place de l'attribut 'fontWithName'. Le lien est ici lien texte
N'essayez pas de jouer avec les noms de police. En utilisant le descripteur de police, vous n'avez besoin d'aucun nom:
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
signifie 'garder la taille telle quelle'
Avec Swift, essayez l'extension suivante:
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)
}
}
Ensuite, vous pouvez l'utiliser de cette façon:
myLabel.font = myLabel.font.boldItalic()
ou même ajouter des traits supplémentaires comme 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
Utilisez-le comme suit:
myLabel.font = myLabel.font.bold
ou
myLabel.font = myLabel.font.italic
ou
myLabel.font = myLabel.font.with(traits: [ .traitBold, .traitCondensed ])
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 jetez un coup d'œil à cela ..
myLabel.font = [UIFont boldSystemFontOfSize:16.0f]
myLabel.font = [UIFont italicSystemFontOfSize:16.0f];
utilisez l'une des options ci-dessus à l'heure que vous souhaitez
J'ai le même problème qui doit appliquer les caractères gras et italique sur une étiquette et un bouton. Vous pouvez simplement utiliser le code suivant pour obtenir cet effet:
myLabel.font = [UIFont fontWithName:@"Arial-BoldItalic" size:30.0];
Avec la police par défaut du système iOS 7, vous utiliserez helvetica neue bold si vous souhaitez conserver la police par défaut du système.
[titleText setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0]];
Ou vous pouvez simplement l'appeler:
[titleText setFont:[UIFont boldSystemFontOfSize:16.0]];
jetez un oeil à: this URL
J'ai fait une variation de la réponse de maksymilian wojakowski Où vous pouvez ajouter ou supprimer un trait
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()
utile lors de la réutilisation d'une cellule et que vous souhaitez supprimer l'italique que vous avez mis sur une étiquette d'une cellule précédente
btn.titleLabel.font=[UIFont fontWithName:@"Helvetica neue" size:10];
btn.titleLabel.font = [UIFont boldSystemFontOfSize:btnPrev.titleLabel.font.pointSize+3];
vous pouvez aussi utiliser la police de caractères/boutons en gras
Exemple de texte en gras:
UILabel *titleBold = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 200, 30)];
UIFont* myBoldFont = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
[titleBold setFont:myBoldFont];
Exemple de texte en italique:
UILabel *subTitleItalic = [[UILabel alloc] initWithFrame:CGRectMake(10, 35, 200, 30)];
UIFont* myItalicFont = [UIFont italicSystemFontOfSize:[UIFont systemFontSize]];
[subTitleItalic setFont:myItalicFont];
Comme cela a déjà été mentionné dans ces réponses, vous avez simplement besoin du nom de police correct. Je trouve que iOSFonts.com est la ressource la plus utile pour savoir exactement quel nom utiliser.
J'ai récemment écrit un article sur les restrictions de l'API UIFont et sur la façon de le résoudre .. Vous pouvez le voir à ici
Avec le code que je fournis ici, vous pouvez obtenir votre UIFont désiré aussi facilement que:
UIFont *myFont = [FontResolver fontWithDescription:@"font-family: Helvetica; font-weight: bold; font-style: italic;"];
Et puis réglez-le sur votre UILabel (ou autre) avec: myLabel.font = myFont;
Mise à jour de la réponse géniale de Maksymilian Wojakowski pour 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)
}
}
C'est très simple. Voici le code.
[yourLabel setFont:[UIFont boldSystemFontOfSize:15.0];
Cela vous aidera.
Bien que la réponse fournie par @tolbard soit incroyable et fonctionne bien!
Je pense que créer une extension pour quelque chose qui peut être réalisé en seulement une ligne de code, serait excessif.
Vous pouvez également utiliser bold _ italique pour le même texte dans votre label
en définissant la propriété de police à l'aide de UIFontDescriptor
comme indiqué ci-dessous dans l'exemple ci-dessous avec Swift 4.0:
label.font = UIFont(descriptor: UIFontDescriptor().withSymbolicTraits([.traitBold, .traitItalic])!, size: 12)
Les autres options incluent:
traitLooseLeading
traitTightLeading
traitUIOptimized
traitVertical
traitMonoSpace
traitCondensed
traitExpanded
Pour plus d'informations sur la signification de ces traits symboliques? visitez ici
Avec Swift 5
Pour le style = BOLD
label.font = UIFont(name:"HelveticaNeue-Bold", size: 15.0)
Pour le style = moyen
label.font = UIFont(name:"HelveticaNeue-Medium", size: 15.0)
Pour le style = mince
label.font = UIFont(name:"HelveticaNeue-Thin", size: 15.0)
Souvent, le texte en gras est considéré comme une architecture d’information à un autre niveau et n’a donc pas de caractère gras et régulier sur une ligne. Vous pouvez donc le scinder en deux étiquettes/textViews, une normale et un gras italique. Et utilisez l'éditeur pour choisir les styles de police.