Comment puis-je mettre en gras et en italique sur UILabel de l'iPhone / iPad?
-
11-10-2019 - |
Question
Comment puis-je mettre en gras et en italique sur UILabel
de l'iPhone / iPad?
Je cherchai le forum, mais rien ne m'a aidé. Pourrait aider quelqu'un me?
Autres conseils
Ne pas essayer de jouer avec les noms des polices. En utilisant le descripteur de police que vous avez besoin pas de 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];
moyens de size:0
'garder la taille en l'état'
Swift essayer 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 caractéristiques supplémentaires comme condensé:
myLabel.font = myLabel.font.withTraits(.TraitCondensed, .TraitBold, .TraitItalic)
Mise à jour pour 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
Utilisez-le suit comme:
myLabel.font = myLabel.font.bold
ou
myLabel.font = myLabel.font.italic
ou
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 ont un regard sur ce ..
myLabel.font = [UIFont boldSystemFontOfSize:16.0f]
myLabel.font = [UIFont italicSystemFontOfSize:16.0f];
utilisez une des ci-dessus à un moment que vous voulez
J'ai la même question qui ont besoin d'appliquer à la fois gras et italique sur une étiquette et le bouton. Vous pouvez simplement utiliser le code ci-dessous 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 allez utiliser Helvetica neue gras si vous cherchez à garder 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]];
Swift 3
Gras:
let bondFont = UIFont.boldSystemFont(ofSize:UIFont.labelFontSize)
Italique:
let italicFont = UIFont.italicSystemFont(ofSize:UIFont.labelFontSize)
jeter un oeil à: cette URL
btn.titleLabel.font=[UIFont fontWithName:@"Helvetica neue" size:10];
btn.titleLabel.font = [UIFont boldSystemFontOfSize:btnPrev.titleLabel.font.pointSize+3];
vous pouvez faire la police étiquette / bouton gras, en utilisant également cette
I a fait une variation de la réponse de Maksymilian wojakowski où vous pouvez ajouter ou supprimer un trait (s)
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 cellulaire et que vous voulez supprimer l'italique que vous mettez sur une étiquette dans une cellule précédente
J'ai écrit récemment un article de blog sur les restrictions de l'API UIFont et comment le résoudre. Vous pouvez le voir à ici
Avec le code que je fournis là, vous pouvez obtenir votre choix UIFont aussi facile 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;
Comme il a été mentionné dans ces réponses, vous avez besoin juste le nom de la police droite . Je trouve que iOSFonts.com est la plus ressource utile pour savoir exactement ce que le nom à utiliser.
Exemple texte en gras:
UILabel *titleBold = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 200, 30)];
UIFont* myBoldFont = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
[titleBold setFont:myBoldFont];
Exemple texte en italique:
UILabel *subTitleItalic = [[UILabel alloc] initWithFrame:CGRectMake(10, 35, 200, 30)];
UIFont* myItalicFont = [UIFont italicSystemFontOfSize:[UIFont systemFontSize]];
[subTitleItalic setFont:myItalicFont];
Ceci est très simple. Voici le code.
[yourLabel setFont:[UIFont boldSystemFontOfSize:15.0];
Cela vous aidera.
Mise à jour de réponse impressionnante Maksymilian Wojakowski 'pour rapidement 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)
}
}
Bien que la réponse fournie par @tolbard est incroyable et fonctionne bien!
Je me sens de créer une extension pour quelque chose qui peut être atteint en seulement une ligne de code, serait un mort de plus.
Vous pouvez obtenir gras et italique style pour le même texte dans votre label
en créant la propriété de la police à l'aide UIFontDescriptor
comme indiqué ci-dessous dans l'exemple ci-dessous en utilisant Swift 4.0 :
label.font = UIFont(descriptor: UIFontDescriptor().withSymbolicTraits([.traitBold, .traitItalic])!, size: 12)
D'autres options incluent:
traitLooseLeading
traitTightLeading
traitUIOptimized
traitVertical
traitMonoSpace
traitCondensed
traitExpanded
Pour plus d'informations sur ce que ces traits symboliques signifient? visite
Plusieurs fois le texte est considéré en gras d'une manière d'architecture de l'information à un autre niveau et donc pas et régulière en gras une ligne, de sorte que vous pouvez diviser deux étiquettes / textViews, un régulier et gras italique. Et utiliser l'éditeur pour choisir les styles de police.
Swift 5
Pour le style = BOLD
label.font = UIFont(name:"HelveticaNeue-Bold", size: 15.0)
Pour style = Moyen
label.font = UIFont(name:"HelveticaNeue-Medium", size: 15.0)
Pour style = mince
label.font = UIFont(name:"HelveticaNeue-Thin", size: 15.0)
Je veux juste mentionner que,
UIFont.systemFont(ofSize: 16, weight: UIFont.Weight.bold)
UIFont.boldSystemFont(ofSize: 16)
Ils ont des résultats différents ...