How to change navigationBar height in iOS 11?

This is more of a hack till Apple fixes the bug. I was facing the same issue, so I changed the top constraint of the navigation bar from 0 to 20.

Before: enter image description here

After: enter image description here

In case your UINavigationBar backgroundColor is something other than white, this will leave the status bar with a white color. You can fix this by adding the following in that particular UIViewController.

let statusBarView = UIView(frame: UIApplication.shared.statusBarFrame)
let statusBarColor = UIColor.red
statusBarView.backgroundColor = statusBarColor
view.addSubview(statusBarView)

Before: enter image description here

After: enter image description here

This seems like a lengthy hack, but still better than going back and compiling using Xcode 8.3.


Your code is working fine and it´s nothing wrong with it. If you change the background color of your customNavigationBar you´ll see that you´ll get the navigation bar with the desired height. But it seems like it´s an issue with Xcode 9 to hide the default navigation bar.

Your code with:

Xcode 9 enter image description here

Xcode 8 enter image description here

As you can see in the Xcode 9 image, you have the custom navigation bar but the default one does not hide. Probably a bug in Xcode 9, I did not manage to hide it through the Storyboard either.

This seems to be a bug in Xcode 9, bug reports has been filed to Apple.


The only way I could make it work was to delete the current custom Navigation Bar, and apply an embed UINavigationController to the UIViewController. Editor -> Embed In -> Navigation Controller.

On the new created Navigation Controller properties, on the Utilities (right side bar) menu 'Simulated Metrics' the 'Top Bar' attribute must be specified. In my case I needed the value: 'Opaque Navigation Bar'.

I also set the same value of 'Top Bar' on my UIViewController, just to make sure.

By doing that, a new 'Navigation Item' will be at your disposal, and you can re-add your Bar Button Items.

It's the best I could do while we wait for the Xcode 9 update to fix it.


In iOS 11 we cannot change the navigation bar height, If you want to increase the height we should go with custom view.

Reference: https://forums.developer.apple.com/thread/88202