¿Cómo puedo cambiar la altura de Navigation Bar Swift 3?

Estoy bastante seguro de que esto no está duplicado porque miré otras respuestas y todas están desactualizadas y no brindan una respuesta exacta.

Tengo el Controlador de navegación y varios controladores de vista. Quiero hacer que la barra de navegación sea un poco más alta para que se ajuste al tamaño del texto que necesito. Cómo puedo hacer eso ?

Intenté esto: UINavigationBar.appearance (). Frame = CGRect (x: 0.0, y: 0.0, ancho: 320.0, alto: 210.0) pero no pasa nada …

Además, no pude agregar restricciones a la barra de navegación con los botones de diseño de Xcode.

Espero que alguien pueda ayudarme a solucionar este problema. ¡Gracias por adelantado!

enter image description here

Aquí hay una manera de hacerlo:

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) } 

Puedes crear una clase basada en UINavigationBar como esta

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

Y agrégalo a tu NavigationController.

Puedes escribir este código en la clase que extiende UINavigationController

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

Esto podría ser mejor si sus barras de navegación en su aplicación tienen la misma altura ajustada.

 extension UINavigationBar { open override func sizeThatFits(_ size: CGSize) -> CGSize { return CGSize(width: UIScreen.main.bounds.width, height: 51) } } 

puede dibujar su barra de navegación desde xib (con su altura) y luego:

 self.navigationController?.navigationBar.addSubview(yourNavBarView) 

en alternativa, si quiere crear UIView de código,

 let viewNavBar = UIView(frame: CGRect( origin: CGPoint(x: 0, y:0), size: CGSize(width: self.view.frame.size.width, height: 100))) 

y luego agregar a la barra de navegación.