web-dev-qa-db-fra.com

changer la police du titre de la barre de navigation - swift

J'ai un titre dans ma barre de navigation et je veux le changer en police personnalisée. J'ai trouvé cette ligne de code, mais c'est pour quand vous avez un contrôleur de navigation.

self.navigationController?.navigationBar.titleTextAttributes = [ NSFontAttributeName: UIFont(name: "LeagueGothic-Regular", size: 16.0)!, 
                                                             NSForegroundColorAttributeName: UIColor.whiteColor()]

Mais je n'ai pas de contrôleur de navigation. J'ai ajouté la barre de navigation manuellement à ma vue. 

 enter image description here

 enter image description here

comment puis-je changer la police des commentaires?

25
Hos Ap

Essaye ça:

Objectif c

[[UINavigationBar appearance] setTitleTextAttributes:attrsDictionary];

Swift 3

self.navigationController.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "CaviarDreams", size: 20)!]

Swift 4

self.navigationController.navigationBar.titleTextAttributes = [NSAttributedStringKey.font: UIFont(name: "CaviarDreams", size: 20)!]
51
KAR

Manière correcte de définir la police pour chaque contrôleur de vue dans Swift (à l'aide du proxy d'apparence):

Swift 4

let attributes = [NSAttributedStringKey.font: UIFont(name: "HelveticaNeue-Light", size: 17)!]
UINavigationBar.appearance().titleTextAttributes = attributes

Swift 3

let attributes = [NSFontAttributeName: UIFont(name: "HelveticaNeue-Light", size: 17)!]
UINavigationBar.appearance().titleTextAttributes = attributes
23
Marián Černý

Swift 4.x

Pour modifier la police du titre de la barre de navigation pour Normal et Grand titre au-dessus de iOS 11.x

let navigation = UINavigationBar.appearance()

let navigationFont = UIFont(name: "Custom_Font_Name", size: 20)
let navigationLargeFont = UIFont(name: "Custom_Font_Name", size: 34) //34 is Large Title size by default

navigation.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white, NSAttributedStringKey.font: navigationFont!]

if #available(iOS 11, *){
    navigation.largeTitleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white, NSAttributedStringKey.font: navigationLargeFont!]
}

Titre large doit être défini sur True dans la barre de navigation.

7
iSrinivasan27

Vous pouvez également le faire dans Storyboard. Il existe un bogue dans Xcode 10.1. Il s'agit ici d'une astuce permettant de surmonter ce problème.

Étape 1 - Choisissez Système dans Police

 enter image description here

Étape 2 - Puis à nouveau choisissez Personnalisé et toutes les polices seront affichées.

 enter image description here

3
Gagandeep Gambhir
 self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.font: UIFont(name: "Lato-Semibold", size: 17)!,NSAttributedStringKey.foregroundColor : UIColor.white]
0
Davender Verma Soni