ios - bar - uinavigationitem title color
Cambiar el color de fondo de StatusBar mientras usa un tÃtulo grande para la barra de navegación en iOS 11 (1)
La forma correcta de establecer el color de fondo de UINavigationBar
es usar la propiedad barTintColor
.
self.navigationController?.navigationBar.barTintColor = .red
Puedes notar que el color que configuras puede estar un poco descolorido. Como se señala en la documentación:
Este color se convierte en translúcido por defecto a menos que establezca la propiedad
isTranslucent
enfalse
.
Intento utilizar la nueva característica de título grande de navigationBar en iOS 11.
Sin embargo, después agregué la siguiente línea:
self.navigationController?.navigationBar.prefersLargeTitles = true
Descubrí que el color de fondo de la barra de navegación cambió a negro.
Así que establecí el color de fondo de nuevo manualmente:
self.navigationController?.setBackgroundColor(UIColor(hexString: 0xFF7E79))
Sin embargo, encontré que el color de fondo de la barra de estado no cambió:
Después de configurar el color de fondo de la barra de estado a través de este código:
guard let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView else { return
statusBar.backgroundColor = UIColor(hexString: 0xFF7E79)
Me da una fea línea negra de 1 píxel como esta entre la barra de estado y la barra de navegación:
Entonces, ¿cuál es la forma correcta de establecer el color de fondo de navigationBar?