2015-08-22 11 views
22

Sto cercando di cambiare la dimensione del carattere del titolo di una barra di navigazione. So di poter impostare i suoi attributi utilizzando:Come accedere al font del sistema iOS a livello di programmazione

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

...

self.navigationController?.navigationBar.titleTextAttributes = attributes 

Quello che non riesco a trovare è il nome corretto del carattere 'Sistema'.

Mi trovavo dopo l'impostazione predefinita, a.k.a Sistema, nome del carattere. Ho provato a stampare tutti i font disponibili solo per scoprire che non appartiene a una famiglia e non sembra avere un nome esplicito.

risposta

58

Penso che avete bisogno:

NSFontAttributeName : UIFont.systemFontOfSize(19.0) 

O la versione in grassetto:

NSFontAttributeName : UIFont.boldSystemFontOfSize(19.0) 

Vedi this guide per ulteriori informazioni sulle linee guida dell'interfaccia utente e font.

+0

Non dovrebbe essere '.boldSystemFontOfSize (17.0)' per il titolo della barra di navigazione? – Razvan

+1

Sì, potrebbe essere, dipende da quello che vuoi. Ho aggiornato la mia risposta. Grazie! –

+0

Sarebbe bello se lo aggiungi alla tua risposta: http://ivomynttinen.com/blog/the-ios-7-design-cheat-sheet/ Le dimensioni dei caratteri sono moltiplicate per la risoluzione @ 2x in modo che l'OP debba usare il carattere taglia/2 da quell'articolo. – Razvan

0

Prova il codice qui sotto:

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

Basta usare metodi di UIFont (SWIFT):

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

Speranza che aiuta!

9

È possibile accedere al carattere di sistema come questo, e anche impostare il peso del font:

  • Swift 3

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

  • Swift 2

    UIFont.systemFontOfSize(18, weight: UIFontWeightLight)

Per lo spessore del carattere si ha la scelta tra queste costanti, non disponibili da iOS 8.2:

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

Questo è Swift3 ... bello! –

+0

Grazie a @ChrisAllinson! – Philippe

1

(In linea con la risposta da Philippe per l'ultima versione)

  • Swift 4

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

Problemi correlati