2012-01-23 21 views

Respuesta

22

aquí hay un IOS completos 7 solución compatible (no iOS 6 compatibles, aunque, como muchas cosas han cambiado)

del documento de Apple: Listado Información del hotel de referencia clave ':

UIViewControllerBasedStatusBarAppearance (Boolean - iOS) especifica si la apariencia de la barra de estado se basa en el estilo preferido por el controlador de vista que se encuentra actualmente debajo de la barra de estado. Cuando esta clave no está presente o su valor está establecido en SÍ, el controlador de vista determina el estilo de la barra de estado. Cuando la clave está configurada en NO, los controladores de vista (o la aplicación) deben establecer el estilo de la barra de estado explícitamente utilizando el objeto UIApplication. Esta clave es compatible con iOS 7.0 y versiones posteriores.

De forma predeterminada, esta clave no está presente (= el mismo comportamiento que si agrega la clave, pero ajústela): en este caso, cada controlador de vista determina el comportamiento de la barra de estado, anulando algunos métodos. .

1) muestran Globaly/ocultar la barra de estado todos viewControllers de su aplicación

así que primero la respuesta completa a su pregunta, para hacer una sola configuración de mostrar/ocultar, global para todas sus aplicaciones viewControllers

paso 1: en su archivo frameWork-Info.plst ', agregue la clave' Ver aspecto de la barra de estado basada en el controlador 'y configúrelo en' NO '. Establecer esta clave en 'NO' hará que iOS 7 no llame a los métodos 'prefersStatusBarHidden' y 'preferredStatusBarUpdateAnimation', ver más adelante.

paso 2: en la configuración del proyecto -> General -> Información de despliegue, seleccione 'mostrar/ocultar' durante el inicio de la aplicación

eso es todo: ahora usted puede mostrar a nivel mundial u ocultar la barra de estado, compatible con iOS 7

2) Informe a todos los viewControllers tienen control individual sobre la barra de estado (= iOS 7 por defecto)

paso 1: no agregue la clave, o añadirlo, pero configurarlo para que SÍ, a obtener el comportamiento predeterminado de iOS 7

paso 2: en cada viewController ahora se puede determinar si mostrar/ocultar la barra de estado anulando:

  • (BOOL) prefersStatusBarHidden
  • (UIStatusBarAnimation) preferredStatusBarUpdateAnimation

Así que hay que anular estos 2 métodos para controlar el comportamiento de la barra de estado, y devolver el valor apropiado para su aplicación (ver doc ref para todos los valores posibles, está claramente explicado).

para controlar el comportamiento durante el lanzamiento de aplicaciones (primer controlador que se muestra), establezca mostrar/ocultar bajo la configuración del proyecto -> General -> Información de despliegue

Tenga en cuenta que iOS 7 sólo admite un único estilo de apariencia (UIStatusBarStyleLightContent), ¡todos los demás están en desuso!

Puede activar/desactivar la barra con un botón, por ejemplo, ¡lo más flexible posible!

por ejemplo, agregue un botón a su viewController, y un bool @property 'isStatusBarHidden' Use el siguiente código para activar/desactivar la barra con animación.

- (BOOL)prefersStatusBarHidden 
{ 
    return self.isStatusBarHidden; 
} 

- (IBAction)buttonToggleStatusBar:(UIButton *)sender 
{ 
    [UIView animateWithDuration:1.0 animations:^{ 
     self.isStatusBarHidden = !self.isStatusBarHidden; 
     [self setNeedsStatusBarAppearanceUpdate]; 
    }]; 

} 

se puede hacer lo mismo para la animación preferido

Nota avanzada: si desea establecer un valor predeterminado para el @property 'isStatusBarHidden', tiene que hacerlo en 'initWithCoder' (llamado cuando se usan Guiones gráficos), en lugar de viewDidLoad. La razón es que 'prefersStatusBarHidden' y 'preferredStatusBarUpdateAnimation' se invocan antes de 'viewDidLoad'

+5

Re: "Tenga en cuenta que iOS 7 solo admite un único estilo de apariencia (UIStatusBarStyleLightContent), ¡todos los demás están en desuso!" En realidad, es compatible con dos. 'UIStatusBarStyleDefault' para fondos claros y' UIStatusBarStyleLightContent' para fondos oscuros. –

Cuestiones relacionadas