Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS 13 UIBarButtonItem Font

Wanting to have my own custom font on navigation bar back button items, This worked for me in the past:

    let barButtonAttributes = [NSAttributedString.Key.foregroundColor : UIColor.pink,
                               NSAttributedString.Key.font : UIFont(name: "My-Awesome-Font", size: 18)!]
    UIBarButtonItem.appearance().setTitleTextAttributes(barButtonAttributes, for: .normal)
    UIBarButtonItem.appearance().setTitleTextAttributes(barButtonAttributes, for: .highlighted)

With iOS 13, this has stopped working for me. Is there a work around?

like image 963
Gizmodo Avatar asked Sep 16 '19 19:09

Gizmodo


1 Answers

You'll want to look into the new UINavigationBarAppearance classes in iOS 13.

In your case:

let style = UINavigationBarAppearance()
style.buttonAppearance.normal.titleTextAttributes = [.font: #YOURFONT#]
style.doneButtonAppearance.normal.titleTextAttributes = [.font: #YOURFONT#]

navigationController?.navigationBar.standardAppearance = style
// You may want these as well:
navigationController?.navigationBar.scrollEdgeAppearance = ...
navigationController?.navigationBar.compactAppearance = ...

Edit: Documentation - https://developer.apple.com/documentation/uikit/uinavigationbarappearance

like image 69
Ash Cameron Avatar answered Nov 15 '22 21:11

Ash Cameron