ios - quitar - ocultar barra de estado iphone
Ocultar la barra de estado en ios 9 (7)
¿Cómo se oculta la barra de estado en ios 9?
Esto ahora está en desuso
[UIApplication sharedApplication] setStatusBarHidden:YES];
A continuación, le mostramos cómo puede devolver fácilmente un control sobre la visibilidad de la barra de estado para iOS 9+ y Swift 3+ :
- Agregue la clave de
Info.plist
View controller-based status bar appearance
con el valorYES
aInfo.plist
. Agregue esta variable al controlador de vista:
private var isStatusBarHidden = false { didSet { setNeedsStatusBarAppearanceUpdate() } }
Anular propiedad
prefersStatusBarHidden
:override var prefersStatusBarHidden: Bool { return isStatusBarHidden }
Eso es. Ahora puede llamar a isStatusBarHidden = true
y isStatusBarHidden = false
siempre que lo desee.
En la mayoría de los iOS, funcionará. He probado con iOS 10.
- Abrir info.plist
- "Ver apariencia de la barra de estado basada en el controlador" establecida en NO
- "La barra de estado está inicialmente oculta" establecido en SÍ
- Hecho
Sé que la documentación de setStatusBarHidden:
no menciona el uso en su lugar. Pero el encabezado de UIApplication
sí UIApplication
hace.
// Setting statusBarHidden does nothing if your application is using the default UIViewController-based status bar system.
@property(readwrite, nonatomic,getter=isStatusBarHidden) BOOL statusBarHidden NS_DEPRECATED_IOS(2_0, 9_0, "Use -[UIViewController prefersStatusBarHidden]");
- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation NS_DEPRECATED_IOS(3_2, 9_0, "Use -[UIViewController prefersStatusBarHidden]");
Aquí se indica que debe usar prefersStatusBarHidden
en UIViewController
y usar estilos de barra de estado basados en el controlador de vista.
Todo lo que necesita hacer ahora es configurar si el controlador de vista debe mostrar u ocultar la barra de estado. Al igual que :
- (BOOL)prefersStatusBarHidden {
return YES;
}
Si por algún motivo necesita la View controller-based status bar appearance
igual a YES
(por ejemplo, para mantener la barra de estado en blanco)
en el método didFinishLaunchingWithOptions
de AppDelegate o donde configure su navigationController:
yourNavigationController.navigationBar.barStyle = .black
luego usa la asombrosa respuesta de alex-staravoitau y agrega este código donde sea que alex-staravoitau la barra de estado:
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
No estoy seguro de si esta es la manera correcta de lograr este resultado, pero funcionó para mí y espero que ayude a alguien más también :)
Un enfoque sencillo sería establecer el windowLevel
de la aplicación para que sea normal o de estado según sus necesidades, para comenzar
C objetivo
Para ocultar la barra de estado
UIApplication.sharedApplication.keyWindow.windowLevel = UIWindowLevelStatusBar;
Para mostrar la barra de estado
UIApplication.sharedApplication.keyWindow.windowLevel = UIWindowLevelNormal;
También agregue la Key
( Ver apariencia de la barra de estado basada en el controlador ) con el valor booleano NO.
en info.plist agregue las siguientes dos propiedades.
View controller-based status bar appearance (NO)
Status bar is initially hidden (YES)
Swift-3
override var prefersStatusBarHidden: Bool {
return true
}
Obtuve la información de Here
Cambiar
func
avar
Eliminar
()
Cambiar
->
a:
Esto funciona porque una variable calculada tiene una función getter, por lo que la función que estaba implementando antes simplemente se convierte en la función getter
2016 en adelante: algo simple como
En su info.plist, agregue las siguientes dos propiedades para statusBar Hidden
Ver la apariencia de la barra de estado basada en el controlador (booleano: NO)
La barra de estado está inicialmente oculta (Boolean: YES)
Por fuente
<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
o
Viejas respuestas! ...
agregue
application.statusBarHidden
endidFinishLaunchingWithOptions
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. application.statusBarHidden = YES; return YES; }
y añadir
en
info.plist
agregue estaView controller-based status bar appearance
establecidaNO
View controller-based status bar appearance = NO
conjunto oculto basado en viewcontroller
Agregar método en su controlador de vista.
C objetivo
- (BOOL)prefersStatusBarHidden {
return YES;
}
Swift hasta 2
override func prefersStatusBarHidden() -> Bool {
return true
}
(BUENO) 2016.5.17 en iOS 9.0 funcionó bien.
Respuesta actualizada
- Ir al archivo Info.plist
- Desplácese sobre una de esas líneas y aparecerá un botón (+) y (-).
- Haga clic en el botón más para agregar una nueva clave
- Escriba el inicio con mayúscula V y automáticamente la primera opción será Ver la apariencia de la barra de estado basada en el controlador . Agregue eso como la CLAVE.
- Establezca el VALOR en "NO"
- Vaya a usted AppDelegate.m para Objective-C ( para un lenguaje rápido: AppDelegate.swift )
- Agregue el código, dentro del método
Para Objective-C:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[application setStatusBarHidden:YES];
return YES;
}
Para Swift:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject:AnyObject]?) -> Bool {
application.statusBarHidden = true
return true
}