2015-08-22 14 views
22

Ich versuche, die Schriftgröße des Titels einer Navigationsleiste zu ändern. Ich weiß, ich einstellen kann seine Attribute verwenden:Wie programmgesteuert auf die iOS-Systemschrift zugreifen

var attributes = [ NSForegroundColorAttributeName: UIColor.blackColor(), NSFontAttributeName: UIFont(name: "the font name", size: 18)! ] 

...

self.navigationController?.navigationBar.titleTextAttributes = attributes 

Was ich kann nicht scheinen zu finden, ist der richtige ‚System‘ Schriftname.

Ich war nach dem Standard, a.k.a System, Schriftart. Ich habe versucht, alle verfügbaren Schriftarten zu drucken, nur um festzustellen, dass es keiner Familie angehört und keinen eindeutigen Namen zu haben scheint.

Antwort

58

Ich glaube, Sie brauchen:

NSFontAttributeName : UIFont.systemFontOfSize(19.0) 

Oder die fette Version:

NSFontAttributeName : UIFont.boldSystemFontOfSize(19.0) 

Siehe this guide für weitere Informationen über Benutzeroberfläche Richtlinien und Schriftarten.

+0

Sollte nicht '.boldSystemFontOfSize (17.0)' für den Navigationsleistentitel sein? – Razvan

+1

Ja, könnte sein, hängt davon ab, was Sie wollen. Ich habe meine Antwort aktualisiert. Vielen Dank! –

+0

Es wäre cool, wenn Sie dies zu Ihrer Antwort hinzufügen: http://ivomynttinen.com/blog/the-ios-7-design-cheat-sheet/ Schriftgrößen werden für @ 2x Auflösung multipliziert, so dass das OP die Schriftart verwenden sollte Größe/2 von diesem Artikel. – Razvan

0

den Code unten Versuchen:

self.navigationController!.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name:"Arial", size:14.0)!, NSForegroundColorAttributeName:UIColor.blackColor()] 
1
self.navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName : UIFont.systemFontOfSize(6)] 
1

Verwenden Sie einfach Methoden UIFont (swift):

let sysFont: UIFont = UIFont.systemFontOfSize(UIFont.systemFontSize()) 

Hoffe, es hilft!

9

Sie können die Systemschriftart wie diese zuzugreifen, und stellen sogar das Gewicht der Schrift:

  • Swift 3

    UIFont.systemFont(ofSize: 18, weight: UIFontWeightLight)

  • Swift 2

    UIFont.systemFontOfSize(18, weight: UIFontWeightLight)

Für die Schriftstärke haben Sie die Wahl zwischen diesen Konstanten haben, gibt von iOS 8.2 zur Verfügung:

UIFontWeightUltraLight, 
UIFontWeightThin, 
UIFontWeightLight, 
UIFontWeightRegular, 
UIFontWeightMedium, 
UIFontWeightSemibold, 
UIFontWeightBold, 
UIFontWeightHeavy, 
UIFontWeightBlack 
+0

Das ist Swift3 ... schön! –

+0

Danke @ChrisAllinson! – Philippe

1

(Im Einklang mit der Antwort von Philippe für die neueste Version)

  • Swift 4

    UIFont.systemFont(ofSize: 18, weight: UIFont.Weight.light)

Verwandte Themen