2010-05-19 9 views
7

Tengo una aplicación con una barra de pestañas y una de navegación. Presiono un controlador de vista que se usa para mostrar fotos, una a la vez. Muestra inicialmente las barras y los controles hacia delante/atrás; después de un retraso, estos se ocultan, usando setNavigationBarHidden:animated: y una transformación personalizada (CGAffineTransformMakeTranslation) en la barra de pestañas. Esto funciona, pero la vista de los controladores de vista, que muestra la foto, salta hacia arriba y hacia abajo. Lo mismo es cierto si dejo la barra de pestañas fuera de la ecuación.Cómo evitar el cambio de tamaño/transformación de la vista cuando UINavigationBar oculta/muestra

¿Cómo puedo evitar que UINavigationBar mueva mi vista? Me gustaría que la foto permanezca fija en la pantalla, con la barra de navegación cayendo sobre el segmento superior de la misma.

+0

He tratado esto ignorando el UINavigationController y presentando la vista de la imagen de forma modal. Esto funciona, pero no es del todo satisfactorio. –

+0

Oye, me las arreglé para resolver mi problema, quizás también funcione para ti. Échale un vistazo: http://stackoverflow.com/questions/2881905/imageview-changes-frame-bounds – Icky

Respuesta

0

Sé que esto es una cuestión de edad, sino que he logrado mediante la desactivación 'AUTORESIZE subvistas' en Interface Builder

alt text

0

no he sido capaz de encontrar una forma adecuada de manejar esto con excepción de establecer el estilo navigationbar a translúcido como en:

theNavigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent; 

Aparte de la creación de otra barra de navegación y añadiendo botones para ellos, esa es la mejor (y parece ser lo que hace de Apple, así como en su aplicación de fotos)

1
[[navigationController navigationBar] setBarStyle:UIBarStyleBlackTranslucent]; 
[[navigationController navigationBar] setAutoresizesSubviews:NO]; 

esto parecía hacer el truco para mí!

1

Si este problema y lo arreglaron con una clase que hereda de UINavigationController

-(void)viewWillAppear:(BOOL)animated 
{ 
    self.navigationBar.translucent = YES; 
} 

funcionó muy bien para mí, ¿no tenía que establecer el estilo de UIBarStyleBlackTranslucent. Así que mantuvo mis colores.

Cuestiones relacionadas