Pregunta

Tengo una aplicación basada principalmente en la barra de navegación. Algunos casos requieren la presentación de una vista modal, y uno de esos casos requiere la ocultación de la barra de estado. Sin embargo, incluso si oculto la barra de estado antes de presentar la vista modal, la vista está desplazada en 20 píxeles.

Incluso si configuro el marco de la vista modal en 0, -20,320,480 después de que aparezca la vista, se corta la parte superior de la vista.

También quiero que el usuario pueda revelar la barra de estado (y una barra de herramientas) al tocar la pantalla, de la misma manera que funciona el reproductor de video. Así que establezco el estilo en negro transparente para esta pantalla, y espero que ocultar o mostrar la barra de estado no haga que la vista salte hacia arriba y hacia abajo.

¿Fue útil?

Solución

Viendo de su comentario a continuación que está apuntando a iPhone OS 2.x, tengo una sugerencia que podría ayudar.

Antes de presentar tu vista modal, haz algo como esto:

  [[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];
  [[self view] setFrame:CGRectMake(0, 0, 320, 480)];

Asegúrese de que su vista modal en realidad tenga una altura de 480px, una vez me dejó engañado por el espacio vacío de 20px en la parte inferior. Resultó que era porque mi vista todavía tenía 460px de altura (para tener en cuenta la barra de estado), por lo que el código realmente funcionaba, pero mi vista no era la altura correcta.

Cuando oculta su vista modal, esto funciona:

[[UIApplication sharedApplication] setStatusBarHidden:NO animated:YES];
[[self view] setFrame:CGRectMake(0, 20, 320, 460)];

Es posible que tengas que dividir un poco el código si estás usando presentModalViewController : probé esto usando -addSubview porque estaba usando una animación personalizada. Pero los principios básicos deberían ser los mismos (es decir, cambiar el marco de la vista principal).

Otros consejos

¿Ha buscado en wantsFullScreenLayout en UIViewControllers?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top