iOS 11 - Unable to Change Navigation Bar Height

Cant change navigation bar height ios 11

Changing the height of the UINavigationBar is no longer directly supported in iOS 11 (see here, here & here).

The best you can hope for is to do something like having a view behind the navigation bar and removing the borders (see here for customisation examples).

Cannot change navigation bar item height in iOS 11

You can change the width of navigation bar button item by using this code -

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var frame: CGRect? = navigationItem.leftBarButtonItem?.customView?.frame
frame?.size.width = 5 // change the width of your item bar button
self.navigationItem.leftBarButtonItem?.customView?.frame = frame!
}
override var prefersStatusBarHidden : Bool {
return true
}

Or from storyboard -

Sample Image

Make sure your Assets.xcassets image is set as Render As - Original Image Just like -

Sample Image

How to change navigationBar height in iOS 11?

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
Sample Image

Xcode 8
Sample Image

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.



Related Topics



Leave a reply



Submit