How can I change height of Navigation Bar - Swift 3 How can I change height of Navigation Bar - Swift 3 xcode xcode

How can I change height of Navigation Bar - Swift 3


UPDATE 8/3/20: I posted this in 2016. A number of people have stated this no longer works so please use at your own risk. I am not working in iOS at the moment so I do not have an update handy. Best of luck!

Here is one way to do it:

override func viewDidAppear(_ animated: Bool) {    super.viewDidAppear(animated)    let height: CGFloat = 50 //whatever height you want to add to the existing height    let bounds = self.navigationController!.navigationBar.bounds    self.navigationController?.navigationBar.frame = CGRect(x: 0, y: 0, width: bounds.width, height: bounds.height + height)    }


You can write this code in class that extends UINavigationController

override func viewDidLayoutSubviews() {    super.viewDidLayoutSubviews()    let height = CGFloat(72)    navigationBar.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: height)}


You can create a class based on UINavigationBar like this

class TTNavigationBar: UINavigationBar {    override func sizeThatFits(_ size: CGSize) -> CGSize {        return CGSize(width: UIScreen.main.bounds.width, height: 55)    }}

And add it to your NavigationController.