transparente quitar que ocultar como ios objective-c ios7

quitar - Barra de navegación de iOS 7 Ocultar contenido



ocultar dock ios 12 (4)

Creo que todavía hay un poco de idea errónea sobre este problema de diseño, incluso si iOS 7 se implementó hace más de un año. Así que finalmente decidí elaborar más mi respuesta.

Aquí está la cosa.

Debido a que el valor por defecto de AdjustsScrollViewInsets es YES , una solución bastante sencilla podría ser agregar el siguiente código:

if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)]) { // if iOS 7 self.edgesForExtendedLayout = UIRectEdgeNone; //layout adjustements }

en el método -viewDidLoad - -viewDidLoad de ViewController.

Si desea eliminar la peculiaridad de la barra de estado (debido a la translucidez de la barra, por lo que no es extraño en absoluto) agregue self.navigationController.navigationBar.translucent = NO . El valor predeterminado es YES . Nota : esto no tiene nada que ver con el contenido, está relacionado con el contenido debido a la translucidez, ¡pero es una historia completamente diferente!

Debido a que extendedLayoutIncludesOpaqueBars es NO por defecto, self.navigationController.navigationBar.translucent = NO significa que básicamente tiene

self.edgesForExtendedLayout = UIRectEdgeLeft | UIRectEdgeRight| UIRectEdgeBottom;

O, más generalmente, algo así (es como pseudocódigo para dar una idea ...)

BOOL enableTopEdge = extendedLayoutIncludesOpaqueBars && !navigationBarIsTranslucent self.edgesForExtendedLayout = (enableTopEdge & UIRectEdgeTop) | UIRectEdgeLeft | UIRectEdgeRight | UIRectEdgeBottom;

Tengo una aplicación que se desarrolló en iOS 6. Pero ahora en iOS 7 o incluso mi aplicación compilada para iOS 6, pero ejecutando en un dispositivo iOS 7 la barra de navegación superior (la nueva gigante en iOS 7) mi contenido está oculto. La barra de navegación superior lo cubre. Si lo muevo manualmente hacia abajo con CGRect, se ve bien en iOS 7, pero ahora iOS 6 se ve horrible (mucho espacio por encima de él).

La aplicación se creó con el apagado automático desactivado porque es muy difícil configurar las cosas correctamente.

Mi pregunta es, ¿hay una manera fácil de bajar el contenido solo para iOS 7? Realmente no quiero tener que volver a activar la reproducción automática y pasar un mes intentando que todos los elementos de la interfaz de usuario vuelvan a estar en su lugar. La aplicación es bastante sofisticada con más de 30 pantallas y una gran cantidad de animaciones en las pantallas.


Para ocultar la barra de navegación , agregue lo siguiente a su UIViewController:

- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; // Hide the top navigation bar. [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; self.navigationController.navigationBar.shadowImage = [UIImage new]; self.navigationController.navigationBar.translucent = YES; }

Para mostrar la barra de navegación , usa lo siguiente:

- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; // Show the top navigation bar. self.navigationController.navigationBar.translucent = NO; }

A continuación se muestran los resultados en iOS7:

La captura de pantalla de la izquierda muestra la barra de navegación oculta, mientras que la imagen de la derecha muestra la barra de navegación: el contenido de la tabla se oculta correctamente debajo de la barra de navegación.

¡Espero que esto ayude!


Ponga self.edgesForExtendedLayout = UIRectEdgeNone;

en su método ViewDidLoad


También puede intentar configurar la navigationBar.translucent = NO , como se mencionó en esta respuesta .