ios - navigation bar xcode swift
¿Cómo puedo cambiar la altura de la barra de navegación Swift 3? (5)
Aquí hay una forma 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)
}
Estoy bastante seguro de que esto no está duplicado porque miré otras respuestas y todas están desactualizadas y no proporcionan una respuesta exacta.
Tengo un controlador de navegación y varios controladores de vista. Quiero que la barra de navegación sea un poco más alta para que se ajuste al tamaño de texto que necesito. Cómo puedo hacer eso ?
Intenté esto: UINavigationBar.appearance (). Frame = CGRect (x: 0.0, y: 0.0, width: 320.0, height: 210.0) pero no sucede nada ...
Además, no pude agregar restricciones a la barra de navegación usando los botones de diseño Xcode.
Espero que alguien pueda ayudarme a solucionar este problema. ¡Gracias por adelantado!
Esto podría ser mejor si todas las barras de navegación de 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 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éguelo a su NavigationController.
Puede 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)
}
puedes dibujar tu barra de navegación desde xib (con tu altura) y luego:
self.navigationController?.navigationBar.addSubview(yourNavBarView)
como alternativa, si desea crear UIView a partir del 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 agregando a la barra de navegación.