Wie setze ich Fett und Kursiv auf dem UILabel
iPhone / iPad? Ich habe das Forum durchsucht, aber nichts hat mir geholfen. Könnte mir jemand helfen?
Wie setze ich Fett und Kursiv auf dem UILabel
iPhone / iPad? Ich habe das Forum durchsucht, aber nichts hat mir geholfen. Könnte mir jemand helfen?
Antworten:
sectionLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:18];
Es gibt eine Liste von Schriftnamen, die Sie anstelle des Attributs 'fontWithName' festlegen können. Der Link befindet sich hier
Versuchen Sie nicht, mit den Schriftnamen zu spielen. Mit dem Font Deskriptor benötigen Sie keine Namen:
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
bedeutet "Größe beibehalten wie sie ist"
Versuchen Sie mit Swift die folgende Erweiterung:
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)
}
}
Dann können Sie es folgendermaßen verwenden:
myLabel.font = myLabel.font.boldItalic()
oder fügen Sie sogar zusätzliche Merkmale wie Condensed hinzu:
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
Verwenden Sie es wie folgt:
myLabel.font = myLabel.font.bold
oder
myLabel.font = myLabel.font.italic
oder
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)
sollte wahrscheinlich return withTraits(.TraitBold, .TraitItalic)
mit dem Funktionsnamen übereinstimmen.
@Edinator schau dir das an ..
myLabel.font = [UIFont boldSystemFontOfSize:16.0f]
myLabel.font = [UIFont italicSystemFontOfSize:16.0f];
Verwenden Sie eine der oben genannten Optionen zu einem von Ihnen gewünschten Zeitpunkt
Sie können einen beliebigen Schriftstil, eine beliebige Schriftart und eine beliebige Schriftgröße für die Beschriftung festlegen, indem Sie im Feld Schriftart auf den Buchstaben "T" klicken .
Ich habe das gleiche Problem, bei dem sowohl Fett als auch Kursiv auf ein Etikett und eine Schaltfläche angewendet werden müssen. Sie können einfach folgenden Code verwenden, um diesen Effekt zu erzielen:
myLabel.font = [UIFont fontWithName:@"Arial-BoldItalic" size:30.0];
Mit der Standardschriftart des iOS 7-Systems verwenden Sie helvetica neue fett, wenn Sie die Standardschriftart des Systems beibehalten möchten.
[titleText setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0]];
Oder Sie können es einfach nennen:
[titleText setFont:[UIFont boldSystemFontOfSize:16.0]];
Swift 3
Fett gedruckt:
let bondFont = UIFont.boldSystemFont(ofSize:UIFont.labelFontSize)
Kursiv:
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];
Sie können damit auch fett gedruckte Beschriftungs- / Schaltflächenschriften erstellen
Ich habe eine Variation der Reaktion von maksymilian wojakowski vorgenommen, bei der Sie ein oder mehrere Merkmale hinzufügen oder entfernen können.
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)
}
}
Beispiel
label.font = label.font.italic().bold()
Dies ist nützlich, wenn Sie eine Zelle wiederverwenden und die Kursivschrift entfernen möchten, die Sie auf einem Etikett in einer vorherigen Zelle angebracht haben
Ich habe kürzlich einen Blog-Beitrag über die Einschränkungen der UIFont-API und deren Lösung geschrieben. Sie können es hier sehen
Mit dem Code, den ich dort zur Verfügung stelle, können Sie Ihr gewünschtes UIFont so einfach erhalten wie:
UIFont *myFont = [FontResolver fontWithDescription:@"font-family: Helvetica; font-weight: bold; font-style: italic;"];
Und setzen Sie es dann auf Ihr UILabel (oder was auch immer) mit:
myLabel.font = myFont;
Wie bereits in diesen Antworten erwähnt, benötigen Sie nur den richtigen Schriftnamen . Ich finde, dass iOSFonts.com die hilfreichste Ressource ist, um genau zu wissen, welcher Name verwendet werden soll.
Beispiel Fettgedruckter Text:
UILabel *titleBold = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 200, 30)];
UIFont* myBoldFont = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
[titleBold setFont:myBoldFont];
Beispiel Kursiver Text:
UILabel *subTitleItalic = [[UILabel alloc] initWithFrame:CGRectMake(10, 35, 200, 30)];
UIFont* myItalicFont = [UIFont italicSystemFontOfSize:[UIFont systemFontSize]];
[subTitleItalic setFont:myItalicFont];
Obwohl die Antwort von @tolbard erstaunlich ist und gut funktioniert!
Ich denke, eine Erweiterung für etwas zu erstellen, das in nur einer Codezeile erreicht werden kann, wäre ein Over-Kill.
Sie können sowohl Fettdruck als auch Kursivdruck für denselben Text in Ihrem Text erstellen, label
indem Sie die Schrifteigenschaft UIFontDescriptor
wie unten im folgenden Beispiel gezeigt mit Swift 4.0 einrichten :
label.font = UIFont(descriptor: UIFontDescriptor().withSymbolicTraits([.traitBold, .traitItalic])!, size: 12)
Weitere Optionen sind:
traitLooseLeading
traitTightLeading
traitUIOptimized
traitVertical
traitMonoSpace
traitCondensed
traitExpanded
Weitere Informationen darüber, was diese symbolischen Merkmale bedeuten? Besuche hier
Aktualisierung von Maksymilian Wojakowskis großartiger Antwort für 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)
}
}
Oft wird der fettgedruckte Text auf einer anderen Ebene in einer Informationsarchitektur betrachtet und ist daher nicht fett und regelmäßig in einer Zeile, sodass Sie ihn in zwei Beschriftungen / Textansichten aufteilen können, eine reguläre und eine fett kursiv gedruckte. Verwenden Sie den Editor, um die Schriftstile auszuwählen.