ios - transparente - como quitar la barra gris del iphone
Transición entre barra de navegación transparente a translúcida (2)
Acabo de descargar la aplicación para estar seguro. Se usan dos barras de navegación diferentes. Puedes ver esto usando el gesto pop interactivo. Observe cómo la barra de navegación en el controlador de vista inferior se desliza hacia adentro y hacia afuera. Durante las transiciones push y pop normales, los elementos de navegación simplemente aparecen y desaparecen en la barra existente, mientras que la barra está estacionaria. Esto es lo que sucede hasta el punto donde se empuja el controlador de vista que se está reproduciendo.
Si observa rápidamente, durante la animación del controlador de vista que se está reproduciendo, puede ver desaparecer la barra de navegación inferior.
Según mi experiencia con el comportamiento de UIKit y lo que veo en la aplicación, esto es lo que creo que sucede:
album_vc
= la parte inferior, controlador de vista de lista nowplaying_vc
= el controlador de vista superior
En la vista de
nowplaying_vc
viewWillAppear:
- Establezca la barra de navegación en oculta usando
[self.navigationController setNavigationBarHidden:YES animated:YES];
. Como está en el bloque de animación, esto hará que la barra de navegación se deslice durante la animación de inserción. - Establezca
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
Bastante seguro de esto, porque note que no hay animación en la transición de los estilos de la barra de estado. Simplemente se vuelve blanco.
- Establezca la barra de navegación en oculta usando
En la
nowplaying_vc
deviewWillDisappear:
- Configure la barra de navegación como se muestra utilizando
[self.navigationController setNavigationBarHidden:NO animated:YES];
. Como esto está en el bloque de animación, esto hará que la barra de navegación se deslice durante la animación pop. - Establezca
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
De nuevo, observe cómo durante el gesto interactivo del pop, la barra de estado simplemente cambia sin animación.
- Configure la barra de navegación como se muestra utilizando
Para lograr el aspecto transparente de la barra de navegación de nowplaying_vc
, puede usar una imagen vacía ( [UIImage alloc]
) con setBackgroundImage:forBarPosition:barMetrics:
Dado que la aplicación no gira, no podemos estar seguros si la barra de navegación en nowplaying_vc
es parte de otro controlador de navegación o solo una barra de navegación en la parte superior con una posición de UIBarPositionTopAttached
. Por lo que sabemos, ni siquiera hay una barra de navegación allí, sino solo una vista posterior de la imagen de Chevron (el botón de la barra posterior está compuesto por una vista de imagen y un botón).
Creo que el estilo de la barra de estado se cambia en viewWillAppear:
y viewWillDisappear:
debido a la sensación antinatural que hay durante el gesto pop interactivo. Yo recomendaría usar una transición animada, o mejor aún, usar el nuevo estilo de barra de estado basado en el controlador de vista, que el sistema anima las transiciones por sí mismo.
En la aplicación Remote recientemente lanzada de Apple noté que la forma en que se comporta la barra de navegación es única y no he podido reproducirla. Al abrir el controlador de vista Reproducción en curso, la barra de navegación permanece transparente para el controlador de vista Reproducción en curso y la barra de navegación para el controlador de vista de biblioteca también permanece translúcida (Captura de pantalla 1). Estoy tratando de averiguar si están usando dos controles de navegación o solo uno. Personalmente, creo que están usando solo una por dos razones (1) el gesto pop interactivo está habilitado; (2) cuando presiona el botón ''Reproducción en curso'' en el controlador de vista de biblioteca, justo antes de que la pantalla que se está reproduciendo haya terminado la animación ''pulsar controlador de vista'', la barra de navegación se vuelve transparente (captura de pantalla 2). Este es el comportamiento que experimento al presionar mi controlador de vista (que establece la barra de navegación en transparente). Entonces mi pregunta es: ¿cómo presenta Apple ambas barras de navegación de los dos controladores de vista como si fueran individuales (como con la captura de pantalla 1), incluso los botones de barra, título de navegación, etc. ... están al 100% en opacidad al cambiar (generalmente cuando al presionar / hacer estallar los botones y títulos del controlador de vista anterior, se desvanece a medida que se empuja el nuevo controlador). He intentado jugar con el color del tinte de la barra en viewDidAppear
y viewWillAppear
en ambos controladores de vista, pero no puedo reproducir el mismo comportamiento y no puedo evitar que los botones de la barra se desvanezcan.
Dios mío, espero haber explicado esto bien, ¡me confundo solo de pensarlo!
Captura de pantalla 1 (saltando):
Captura de pantalla 2 (Empujar):
En lugar de ocultar y mostrar la barra de navegación, puede actualizar el alfa de la barra de navegación. Se animará sin problemas durante la transición. Para el controlador de visualización con barra de navegación transparente, en lugar de modificar la barra de navegación, cree una barra de navegación (o solo el botón de retroceso y título, etc.) manualmente en la vista del segundo controlador. Luego, ocultaremos la barra de navegación cuando hagamos la transición desde el controlador de la primera vista al segundo.
En la vista de su primer controlador, viewWillDisappear
y en la vista del controlador de la segunda vista viewWillAppear:
, establezca la barra de navegación alfa en cero usando self.navigationController.navigationBar.alpha = 0;
. Como esto está en el bloque de animación, esto hará que la barra de navegación desaparezca durante la animación de inserción.
Establezca el alfa en uno en la vista del primer controlador viewWillAppear
y la segunda vista del controlador viewWillDisappear
.