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


Estoy tratando de ocultar la barra de estado, pero mantengo la altura de la barra de navegación "más grande". Ahora mismo cuando oculto la barra de estado al configurar - (BOOL)prefersStatusBarHidden a YES y luego llamar [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!


32
2017-10-02 13:02


origen


Respuestas:


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" a YES y establecer UIViewControllerBasedStatusBarAppearance a NO. Esto ocultará la barra de estado de tu aplicación.


3
2018-06-02 09:21



Agregue este código en su vista Controlador:

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

2
2017-10-04 10:06



Deberías usar de positionForBar: método de UIBarPositioningDelegate Protocol.

No quiero poner otra respuesta o copiar / pasar, por lo que debería examinar más detenidamente las siguientes preguntas / respuestas. :)

Barra de estado de iOS 7 se bloquea con NavigationBar
iOS 7 UIToolBar reemplazando con barra de estado
superposición de contenido de la barra de estado en iOS7 


1
2018-06-05 06:37



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.


1
2018-05-30 07:42



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 cual conjunto frameMinY Está establecido frame.origin.y y establecer frameHeight Está establecido frame.size.height


0
2017-08-30 12:47