2015-03-01 4 views
5

Ich versuche, font Eigenschaft für UINavigationItem zu ändern.Wie ändere ich die Schriftart UINavigationItem?

Ich habe versucht mit titleTextAttributes, aber irgendwie kann ich nur Titel Schriftart ändern.

Wie kann ich die Schriftart oder UINavigationItem ändern?

self.navigationController?.navigationBar.titleTextAttributes = [ 
      NSForegroundColorAttributeName: UIColor.blackColor(), 
      NSFontAttributeName: UIFont(name: "Papyrus", size: 18)! 
     ] 

aber es ändert sich nur das, was auf dem Bild zu sehen ist, nicht das:

enter image description here

Ich habe versucht, mit: Zum Beispiel das „Mehr“ Text für das Back UIButton weiter unten "Mehr" Button Schriftart.

Antwort

10

Der Grund Ihrer Methode nicht funktioniert, weil Sie gerade titleTextAttributes = ... verwendet haben, als Sie setTitleTextAttributes:forState: verwenden muss ich diese Funktion verwenden, um die Navigationsleiste global für mein gesamtes Projekt anpassen:

func customizeNavBar(#color: UIColor, titleFont: UIFont, buttonFont: UIFont) { 

    UINavigationBar.appearance().tintColor = color 
    UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: color, NSFontAttributeName: titleFont] 
    UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: color, NSFontAttributeName: buttonFont], forState: UIControlState.Normal) 
} 

Für ein einzelnes So rufen die gleichen Funktionen:

someBarButton.tintColor.setTitleTextAttributes([NSForegroundColorAttributeName: color, NSFontAttributeName: buttonFont], forState: UIControlState.Normal) 
+0

Dies ändert die Schriftart für alle Tasten, ich muss sie nur für eine bestimmte Klasse ändern/Navigation Controller – Fengson

+0

Dann rufen Sie anstelle von 'UINavigationBar.appearance() 'die gleichen Funktionen für eine Instanz von UINavigationBar auf (vermutlich' navigationController.navigationBar')) Antwort aktualisiert – Ian

+0

Ich habe das bereits versucht, aber ich bekomme einen Fehler "UINavigationItem hat keinen Mamber namens setTitleTextAttributes. Noch kann navigationBar ... Ich kann nur die verwenden, die ich in meinem ersten Post vorgestellt habe.: Fengson

0

Swift 4

UIBarButtonItem.appearance().setTitleTextAttributes([NSAttributedStringKey.font: UIFont(name: "Helvetica-Bold", size: 15)!], for: .normal) 
Verwandte Themen