transparente quitar para ocultar estado desaparece como barra ios objective-c swift swift3 statusbar

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+ :

  1. Agregue la clave de Info.plist View controller-based status bar appearance con el valor YES a Info.plist .
  2. Agregue esta variable al controlador de vista:

    private var isStatusBarHidden = false { didSet { setNeedsStatusBarAppearanceUpdate() } }

  3. 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.

  1. Abrir info.plist
  2. "Ver apariencia de la barra de estado basada en el controlador" establecida en NO
  3. "La barra de estado está inicialmente oculta" establecido en SÍ
  4. Hecho

Sé que la documentación de setStatusBarHidden: no menciona el uso en su lugar. Pero el encabezado de UIApplicationUIApplication 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 a var

  • 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! ...

  1. agregue application.statusBarHidden en didFinishLaunchingWithOptions

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. application.statusBarHidden = YES; return YES; }

y añadir

  1. en info.plist agregue esta View controller-based status bar appearance establecida NO

    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

  1. Ir al archivo Info.plist
  2. Desplácese sobre una de esas líneas y aparecerá un botón (+) y (-).
  3. Haga clic en el botón más para agregar una nueva clave
  4. 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.
  5. Establezca el VALOR en "NO"
  6. Vaya a usted AppDelegate.m para Objective-C ( para un lenguaje rápido: AppDelegate.swift )
  7. 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 }