samsung oreo ocultar nova navegacion iconos estado barra ios ios7 uinavigationbar uistatusbar

oreo - Al ocultar la barra de estado, mi barra de navegación se mueve hacia arriba en iOS7



ocultar barra navegacion oreo (5)

Estoy tratando de ocultar la barra de estado, pero mantengo la altura de la barra de navegación "más grande". En este momento, cuando - (BOOL)prefersStatusBarHidden la barra de estado estableciendo - (BOOL)prefersStatusBarHidden a YES y luego llamo [self setNeedsStatusBarAppearanceUpdate]; . El problema con esto es que la barra de navegación se deslizará hacia arriba y no dejará espacio para la notificación que intento mostrar. Simplemente agregando una vista sobre la barra de estado no es una opción, nuestra barra de estado / navegación tiene el efecto de desenfoque de lujo. ¿Alguien tiene una pista de cómo mantener la altura estándar de la barra de navegación con la altura de la barra de estado y quitar la barra de estado de eso?

Editar; Lo que terminé haciendo es arriesgarme y obtener la ventana UI de la barra de estado a través de una API privada y compensar eso.

Editar 2; La aplicación fue aprobada con la API privada. ¡Ten cuidado!


Agregue este código en su vista Controlador:

if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)]) { self.edgesForExtendedLayout = UIRectEdgeNone; }



Otra solución aquí: subclase UINavigationController método de anulación:

- (void)viewWillLayoutSubviews { [super viewWillLayoutSubviews]; if (self.navigationBar.frameMinY < 1) { self.navigationBar.frameHeight = 64; } else { self.navigationBar.frameHeight = 44; } }

en el que frameMinY se establece frame.origin.y y set frameHeight se establece frame.size.height


Puede crear una UIView personalizada con su marco como

customView.frame=CGRectMake(0, 20, self.view.frame.size.width, self.view.frame.size.height);

También oculte su barra de estado siguiendo los pasos a continuación

Vaya a info.plist y agregue dos atributos si no está presente. establecer "La barra de estado está inicialmente oculta" en YES y establecer UIViewControllerBasedStatusBarAppearance en NO . Esto ocultará la barra de estado de tu aplicación.


Tuve que hacer esto una vez. Terminé creando una barra de navegación personalizada y luego configuré el cuadro como sigue:

navBar.frame=CGRectMake(0, 20, self.view.frame.size.width, self.view.frame.size.height);

Funcionó para mí en ese momento. Solo pruébalo.