Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I change height of Navigation Bar - Swift 3

I'm pretty sure this is not duplicate because I looked at other answers and they all outdated and do not provide exact answer.

I have Navigation Controller and several view controllers. I want to make Navigation Bar a bit taller so it would fit text size that I need. How can I do that ?

I tried this:

UINavigationBar.appearance().frame = CGRect(x: 0.0, y: 0.0, width: 320.0, height: 210.0) 

but nothing happens...

Also, I wasn't able to add any constraints to the Nav Bar using Xcode layout buttons.

Hope somebody can help me to fix this issue. Thanks in advance!

enter image description here

like image 523
KirillC Avatar asked Nov 22 '16 20:11

KirillC


People also ask

What is the height of navigation bar?

Personally I feel most comfortable using a navbar height of 64px. It is enough height to accommodate a logo, and there is room enough to use text in combination with symbols.


Video Answer


2 Answers

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)      } 
like image 103
Frankie Avatar answered Oct 12 '22 02:10

Frankie


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)
}
like image 25
kbokdia Avatar answered Oct 12 '22 04:10

kbokdia