web-dev-qa-db-de.com

Wie kann ich das UILabel des iPhone/iPad fett und kursiv einstellen?

Wie setze ich fett und kursiv auf UILabel von iPhone/iPad? Ich habe das Forum durchsucht, aber mir hat nichts geholfen. Könnte mir jemand helfen?

120
Edi
sectionLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:18];

Es gibt eine Liste von Schriftartnamen, die Sie anstelle des Attributs 'fontWithName' festlegen können. Der Link ist hier link text

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 "Behalte die Größe 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 so benutzen:

myLabel.font = myLabel.font.boldItalic()

oder sogar zusätzliche Eigenschaften wie Condensed hinzufügen:

myLabel.font = myLabel.font.withTraits(.TraitCondensed, .TraitBold, .TraitItalic)

Update für 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

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 ])

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)
    }
245

@Edinator schaut mal rein ..

myLabel.font = [UIFont boldSystemFontOfSize:16.0f]
myLabel.font = [UIFont italicSystemFontOfSize:16.0f];

verwenden Sie eine der oben genannten Optionen zu einem beliebigen Zeitpunkt

100
Sudhanshu

Sie können einen beliebigen Schriftstil, jede Familie und Größe für das Etikett festlegen, indem Sie im Feld Font auf den Buchstaben "T" klicken.

 Label font settings

8
ViliusK

Ich habe das gleiche Problem, das fett und kursiv auf einem Etikett und einer Schaltfläche angewendet werden muss. Sie können einfach folgenden Code verwenden, um diesen Effekt zu erzielen:

myLabel.font = [UIFont fontWithName:@"Arial-BoldItalic" size:30.0];
6
Even Cheng

Mit der Standardschriftart für das iOS 7-System verwenden Sie helvetica neue bold, wenn Sie die Standardschriftart des Systems beibehalten möchten.

    [titleText setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0]];

Oder Sie rufen es einfach an:

    [titleText setFont:[UIFont boldSystemFontOfSize:16.0]];
6
John Riselvato

Swift

Fett:

let bondFont = UIFont.boldSystemFont(ofSize:UIFont.labelFontSize)

Kursiv:

let italicFont = UIFont.italicSystemFont(ofSize:UIFont.labelFontSize)

3
Vyacheslav

schauen Sie sich an: this URL

3
Olaf

Ich habe eine Variation der Antwort von maksymilian wojakowski Vorgenommen, in der Sie ein Merkmal 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()

es ist nützlich, wenn Sie die Zelle wiederverwenden, und Sie möchten die Kursivschrift entfernen, die Sie in einer vorherigen Zelle auf ein Etikett setzen

3
tolbard
 btn.titleLabel.font=[UIFont fontWithName:@"Helvetica neue" size:10];
 btn.titleLabel.font =  [UIFont boldSystemFontOfSize:btnPrev.titleLabel.font.pointSize+3];

sie können auch fett gedruckte Beschriftungen/Schaltflächen verwenden 

3

Beispiel Fettschrift:

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];
2
Mer

Wie bereits in diesen Antworten erwähnt, ist Sie benötigen nur den richtigen Namen der Schriftart. Ich finde, dass iOSFonts.com die hilfreichste Ressource ist, um genau zu wissen, welcher Name verwendet werden soll.

2
Richard Venable

Ich habe kürzlich einen Blog-Beitrag über die Einschränkungen der UIFont-API und deren Lösung verfasst. Sie können es unter hier sehen

Mit dem Code, den ich dort zur Verfügung stelle, können Sie Ihren gewünschten UIFont so einfach erhalten wie:

UIFont *myFont = [FontResolver fontWithDescription:@"font-family: Helvetica; font-weight: bold; font-style: italic;"];

Und dann setze es auf dein UILabel (oder was auch immer) mit: myLabel.font = myFont;

2
Jordi

Aktualisiere Maksymilian Wojakowski 's großartige 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)
}

}

1
devjme

Das ist sehr einfach. Hier ist der Code.

[yourLabel setFont:[UIFont boldSystemFontOfSize:15.0];

Das wird dir helfen.

1
Ashu

Die Antwort von @tolbard ist erstaunlich und funktioniert gut! 

Ich habe das Gefühl, eine Erweiterung für etwas zu schaffen, das nur durch eine Codezeile erreicht werden kann, wäre ein Over-Kill. 

Sie können bold sowie kursiv-Stil für den gleichen Text in Ihrer label erhalten, indem Sie die font -Eigenschaft mit UIFontDescriptor wie unten gezeigt mit Swift 4.0 einrichten: 

label.font = UIFont(descriptor: UIFontDescriptor().withSymbolicTraits([.traitBold, .traitItalic])!, size: 12)

Andere Optionen umfassen:

traitLooseLeading
traitTightLeading
traitUIOptimized
traitVertical
traitMonoSpace
traitCondensed
traitExpanded

Weitere Informationen darüber, was diese symbolischen Merkmale bedeuten? Besuche hier

0
iOSer

Mit Swift 5

Für style = BOLD

label.font = UIFont(name:"HelveticaNeue-Bold", size: 15.0)

Für Stil = Mittel

label.font = UIFont(name:"HelveticaNeue-Medium", size: 15.0)

Für style = Thin

label.font = UIFont(name:"HelveticaNeue-Thin", size: 15.0)
0
swiftBoy

Oft wird der fettgedruckte Text in einer Informationsarchitektur auf einer anderen Ebene betrachtet und ist daher nicht in einer Zeile fett und regelmäßig dargestellt. Daher können Sie ihn in zwei Beschriftungen/Textansichten aufteilen, eine reguläre und eine Fett- und Kursivschrift. Verwenden Sie den Editor, um die Schriftarten auszuwählen.