2014-10-26 15 views
17

Sto provando a impostare correttamente la barra di navigazione, ho bisogno di cambiare il font in helvetica neue con un punto di dimensione di 19. Ho mai usato questo codice ma ho notato che ora non lo fa 't lavoro così:NSFontAttributeName è stato modificato in String

navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "HelveticaNeue-Light", size: 19)] 

questo accade perché il tipo di NSFontAttributeName è cambiato a corde, ho cercato di risolvere il problema con

navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: "HelveticaNeue-Light, 19"] 

ma il compilatore continuano a darmi un errore relativo puntare la dimensione nel carattere, come posso risolverlo?

risposta

60

Il costruttore UIFont restituisce un valore facoltativo (UIFont?) che è necessario scartare per l'utilizzo. Aggiungere ! se si è sicuri di avere un nome di carattere valida:

navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "HelveticaNeue-Light", size: 19)!] 
+0

ringraziamento funziona: D –

+0

Lol. grazie amico Non ho idea di come non l'ho capito. Upvoted. –

+0

Grazie! Proprio quello che stavo cercando! – aasatt

10

Con Swift 4 NSFontAttributeName è deprecato, è possibile utilizzare i valori NSAttributedStringKey per impostare gli attributi.

if let fontStyle = UIFont(name: "HelveticaNeue-Light", size: 19) { 
    navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.font: fontStyle] 
} 

Per ulteriori opzioni per NSAttributedStringKey si possono visitare questo link https://developer.apple.com/documentation/foundation/nsattributedstringkey/

Problemi correlati