2008-12-17 16 views

Respuesta

23

En la imagen de arriba, hay una barra de estado translúcido y una barra de navegación translúcido.

La barra de estado se ajusta con

[[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleBlackTranslucent]; 

La barra de navegación se ajusta con

theNavigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent; 
+0

cómo ocultar la barras en la parte superior e inferior si es uiwebview en el controlador de vista? – thndrkiss

+1

Esto no funcionó para mí en el iPhone Simulator 3.2. De la documentación de Xcode: "Obsoleto. Utilice' UIBarStyleBlack' y establezca la propiedad translúcida en 'SÍ' en su lugar. " ¡Eso funciono! :) – ma11hew28

+0

Cuando esto fue escrito (diciembre de 2008), esta fue la forma correcta.Por supuesto, con el tiempo, la API cambia. Tu método ahora es correcto. – August

0

definir el estilo de la barra de estado como estilo de la barra de navegación y translúcido negro como negro translúcido. Si está utilizando una aplicación basada en navegación, en la verificación MainWindow.xib, la barra de estado está oculta y la barra de navegación oculta.

Cuando el usuario toca la pantalla, iniciar un temporizador para ver si se trataba de un solo toque o doble toque. Si toca un solo toque, haga que la barra de estado y la barra de navegación estén ocultas = NO. y una vez que se detiene la actividad del usuario, inicie un temporizador nuevamente. después de un tiempo sin actividad, hágales esconder nuevamente.

4

La mejor manera que se me ocurrió fue lo siguiente: cuando se utiliza una jerarquía de "complejo" de los controladores de navegación barra de pestañas que contienen, con un punto de vista "detalle" es una vista de pantalla completa.

En el delegado de la aplicación justo antes de que se añade la vista del controlador de la barra de pestañas de la ventana, que añade esto:

tabBarController.view.frame = [[UIScreen mainScreen] bounds]; 

Esto hará que el controlador de la barra de pestañas cubre toda la pantalla, incluso por debajo de la zona de la barra de estado. Tuve que compensar las alturas de varias vistas a + 20px, especialmente las barras de navegación.

+0

Dada la situación del O/P, no tengo dudas de que esta solución funciona. Sin embargo, esta solución no es muy general. Si el tabBarController.view es la subvista de una vista que no es en sí misma una vista de pantalla completa, esta solución no funcionará. O la paráfrasis, los límites rect tienen (0,0) como su origen, por lo que su tabBarController.view tendrá su punto de origen como el mismo origen de la súper vista. – SooDesuNe

45

acaba de establecer “quiere diseño de pantalla completa” en su controlador de vista. Eso resuelve el problema para mí.

self.wantsFullScreenLayout = YES; 
+0

Parece que esta es la solución más simple y efectiva. –

+3

Establecido en la subclase UIViewController con: self.wantsFullScreenLayout = YES; – petert

+13

No funcionó para mí (usando un UINavigationController). Tuve que establecer self.navigationController.navigationBar.translucent = YES también. – bentford

14

Si tiene un controlador de vista dentro de un controlador de navegación, y que desea ocultar la barra de estado con el fin de tener una vista de tu viewController en pantalla completa, siempre puede llamar a:

[self.navigationController.view setNeedsLayout]; 

después ocultando la barra de estado. Pero yo personalmente creo

[self setWantsFullScreenLayout:YES]; 

es una mejor manera.

+0

También puede establecer las propiedades 'barStyle',' isTranslucent', y 'backgroundColor' de su barra de navegación si desea hacer coincidir la imagen de arriba. – zekel

0

paso 1 Ajuste el UIViewControllerBasedStatusBarAppearance en No en el plist

A continuación, añada el siguiente código en la opción de lanzamiento acabado hizo

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { 

    [application setStatusBarStyle:UIStatusBarStyleLightContent]; 

    self.window.clipsToBounds =YES; 

    self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20); 
} 

Por favor, siga este código que trabajó para mí

Cuestiones relacionadas