pantalla - ¿Cómo cambiar la altura de la barra de navegación en iOS 11?
mi iphone cambio de color la pantalla (4)
Aparentemente, cambiar la altura de la barra de navegación se enfrentó a un nuevo enfoque en iOS 11. En versiones anteriores de iOS, era posible cambiar la altura de la barra de navegación ocultando la barra de navegación predeterminada y agregando una nueva con un marco personalizado:
self.navigationController?.setNavigationBarHidden(true, animated: false)
let customNavigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: 64))
self.view.addSubview(customNavigationBar)
Pero parece que no está funcionando en iOS 11 xCode beta. No importa cuál sea la nueva altura, siempre se mantendrá en 44.
esto es lo que tengo en xCode 9:
¿Alguien sabe como resolver el problema?
En iOS 11 no podemos cambiar la altura de la barra de navegación . Si desea aumentar la altura, debemos ir con vista personalizada.
Referencia: https://forums.developer.apple.com/thread/88202
Esto es más de un truco hasta que Apple corrige el error. Me enfrentaba al mismo problema, así que cambié la restricción superior de la barra de navegación de 0 a 20.
En caso de que el color de fondo de su UINavigationBar no sea blanco, esto dejará la barra de estado con un color blanco. Puede solucionar esto agregando lo siguiente en ese UIViewController particular.
let statusBarView = UIView(frame: UIApplication.shared.statusBarFrame)
let statusBarColor = UIColor.red
statusBarView.backgroundColor = statusBarColor
view.addSubview(statusBarView)
Esto parece un truco largo, pero aún mejor que regresar y compilar usando Xcode 8.3.
La única forma en que podía hacer que funcionara era eliminar la Barra de navegación personalizada actual y aplicar un UINavigationController incrustado al UIViewController. Editor -> Incrustar en -> Controlador de navegación.
En las nuevas propiedades creadas del Controlador de navegación, en el menú ''Métricas simuladas'' del menú Utilidades (barra lateral derecha) se debe especificar el atributo ''Barra superior''. En mi caso necesitaba el valor: ''Barra de navegación opaca''.
También establecí el mismo valor de ''Barra superior'' en mi UIViewController, solo para asegurarme.
Al hacer eso, un nuevo ''Elemento de navegación'' estará a su disposición, y puede volver a agregar sus Elementos del botón de barra.
Es lo mejor que puedo hacer mientras esperamos que se actualice la actualización de Xcode 9.
Tu código funciona bien y no tiene nada de malo. Si cambia el color de fondo de su customNavigationBar
verá que obtendrá la barra de navegación con la altura deseada. Pero parece que es un problema con Xcode 9 para ocultar la barra de navegación predeterminada.
Como puede ver en la imagen de Xcode 9, tiene la barra de navegación personalizada pero la que está por defecto no se oculta. Probablemente un error en Xcode 9, tampoco pude ocultarlo a través del Storyboard.
Esto parece ser un error en Xcode 9, los informes de errores se han archivado en Apple.