How do I change the NavigationBar font in Swift?
This is what I have tried so far, but receiving an error (I have correctly implemented CaviarDreams
Try this:
self.navigationController.navigationBar.titleTextAttributes = [ NSFontAttributeName: UIFont(name: "CaviarDreams", size: 20)!]
Edit: Now, UIFont must be unwrapped to be able to be used here.
Swift 5 (+ safe handling of optional UIFont
)
self.navigationController?.navigationBar.titleTextAttributes = [ NSAttributedString.Key.font: UIFont(name: "Caviar-Dreams", size: 20) ?? UIFont.systemFont(ofSize: 20)]
Swift 4.2
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let font = UIFont(name: "FontName", size: 16) ?? UIFont.systemFont(ofSize: 16)
UINavigationBar.appearance().titleTextAttributes = [.font: font]
}
For Swift 2.3
self.navigationController!.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "Roboto-Bold", size: 20.0)!, NSForegroundColorAttributeName : UIColor.whiteColor()];
Swift 4
if let font = UIFont(name: "FontName", size: 16) {
self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.font: font]
}
Or as the other answer recommended doing it on the AppDelegate:
if let font = UIFont(name: "FontName", size: 16) {
UINavigationBar.appearance().titleTextAttributes = [
NSAttributedStringKey.font: font]
}
Swift 4.2
self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.font: UIFont(name: "Helvetica", size: 18.0)!]
Swift 4.2
Change Large Title
self.navigationController!.navigationBar.largeTitleTextAttributes = [.font: UIFont.systemFont(ofSize: 22)]
Change Small Title when layout scrolled down
self.navigationController!.navigationBar.titleTextAttributes = [.font: UIFont.systemFont(ofSize: 14)]