Me gustaría eliminar la barra de estado en la parte superior de la pantalla.
Esto no funciona:
func application
(application: UIApplication,
didFinishLaunchingWithOptions launchOptions: NSDictionary?)
-> Bool
{
application.statusBarHidden = true
return true
}
También he intentado:
func application
(application: UIApplication,
didFinishLaunchingWithOptions launchOptions: NSDictionary?)
-> Bool
{
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
var controller = UIViewController()
application.statusBarHidden = true
controller.setNeedsStatusBarAppearanceUpdate()
var view = UIView(frame: CGRectMake(0, 0, 320, 568))
view.backgroundColor = UIColor.redColor()
controller.view = view
var label = UILabel(frame: CGRectMake(0, 0, 200, 21))
label.center = CGPointMake(160, 284)
label.textAlignment = NSTextAlignment.Center
label.text = "Hello World"
controller.view.addSubview(label)
self.window!.rootViewController = controller
self.window!.makeKeyAndVisible()
return true
}

Respuestas:
Realmente debería implementar prefersStatusBarHidden en su (s) controlador (es) de vista:
Swift 3 y posterior
fuente
Agregue el código, dentro del método
¡HECHO! Ejecute su aplicación y no más barra de estado!
fuente
Swift 3
En
Info.plistconjuntoView controller-based status bar appearanceaNOY llama
UIApplication.shared.isStatusBarHidden = truefuente
Si desea ocultar y recuperar la barra de estado al tocar el botón , al momento de presentar y cerrar el menú deslizable , ventanas emergentes , etc., puede usar este método: -
Para ocultar la barra de estado: -
Para recuperar la barra de estado: -
fuente
prefersStatusBarHiddenpropiedad como lo que ya se ha mencionado.prefersStatusBarHiddenes que las vistas vinculadas a la barra de estado usando restricciones, y también las barras de navegación, se moverán de una manera incorrecta si activa / desactiva la barra de estado usandoprefersStatusBarHidden. Por el momento, solo esta respuesta parece funcionar alrededor de eso.prefersStatusBarHiddenalterará su restricción. Hasta ahora esto hace el trabajo. Sin embargo, estoy usando un envoltorio pequeño para evitar el uso de singletons, puedes encontrarlo aquísi prefiere un enfoque visual en lugar de codificarlo, use este método: en su
info.plistView controller-based status bar appearanceaNOy
Status bar is initially hiddencomoYESfuente
fuente
Actualización para iOS 10 / Swift 3.0
Ya no es una función, ahora es una propiedad ...
fuente
get { }si no tiene unset, solo escribareturn trueen Swift 3.x:
fuente
Vaya a su Info.plist y agregue dos claves:
fuente
Entonces, el problema aquí en realidad no tiene nada que ver con Swift, sino cómo se maneja la apariencia de la barra de estado a partir de iOS 7.
Por defecto, los controladores de vista controlan individualmente la apariencia de la barra de estado cuando están en la pantalla. Si desea utilizar este método para controlar la barra de estado, puede anular los siguientes métodos para cualquier controlador de vista para el que desee modificar la apariencia:
prefersStatusBarHidden`preferredStatusBarStyle`preferredStatusBarAnimation,En su caso, simplemente implementaría
prefersStatusBarHiddeny devolveríatrue.La otra forma sería controlar la apariencia de la barra de estado en el nivel de la aplicación. Esto parece ser lo que realmente estás tratando de hacer (configurando
application.statusBarHidden).Para que esto funcione, debe abrir el
Info.plistarchivo de su aplicación y agregar la claveUIViewControllerBasedStatusBarAppearance, y darle un valor deNO.fuente
De hecho, lo descubrí yo mismo. Agregaré mi solución como otra opción.
fuente
De acuerdo, por lo que este se convierta en un problema para mí ya que iOS 9 no admite ningún método por encima de la gente han mencionado aquí como
UIApplication.sharedApplication().statusBarHidden = trueoy
funciona pero no proporciona una solución programable donde pueda cambiar una condición. (
statusBarHidden = trueystatusBarHidden = falsecomo hemos hecho antes).Solución a esta locura:
Al agregar a Me
prefersStatusBarHidden()gusta a continuación, puede controlar mediante programación el escondite de la barra de estado sin agregar laUIViewControllerBasedStatusBarAppearanceconfiguración a su info.plist :luego úsalo así en todo tu código:
O
fuente
prefersStatusBarHiddensentido llamar? Supongo que te refieresself.setNeedsStatusBarAppearanceUpdate()después deshowStatusBarasignarSolo para agregar, al anular el
prefersStatusBarHiddenmétodo o la variable, la listaView controller-based status bar appearancede información debe ser SÍ, de lo contrario, la anulación no tendrá efectofuente
en Swift 4.2 es una propiedad ahora.
fuente
En mi caso, estaba buscando la barra de estado para ocultar / mostrar a pedido; en lugar de solo cuando la vista se carga o desaparece.
Swift 3.x
fuente
Swift 5: en el controlador de vista principal o en el controlador de navegación principal si tiene,
Y "Ver la apariencia de la barra de estado basada en el controlador" en plist debe ser SÍ, de lo contrario no se llamará al código anterior.
Si desea ocultar la barra de estado al iniciar la aplicación, "La barra de estado está inicialmente oculta" en plist debe ser SÍ. Esto puede evitar que la imagen de inicio se distorsione cuando se muestre una barra azul adicional en la parte superior de la pantalla.
fuente
Una solución que me funciona; si desea ocultar la barra de estado en un controlador de vista específico durante la carga:
Atención: si configura la clave " Ver la apariencia de la barra de estado basada en el controlador " en " NO " en su información, el código anterior no funciona. Debe establecer la clave en " SÍ " o eliminarla de info.plist
fuente
En su proyecto General-> Información de implementación-> Estilo de barra de estado seleccione la marca de verificación de Ocultar barra de estado Nota: - oculta la barra de estado en toda la aplicación
fuente
Para Swift 4+ intente el siguiente código (probado en Swift 4.0, 4.1 - IOS 10, 11):
fuente
Swift 5+
En mi caso, necesito actualizar la barra de estado oculta en función de algunas condiciones.
Debido a esto, creo un controlador base
BaseViewControllerque contiene una nueva propiedadhideStatusBar.Otros controladores de vista son subclase de este controlador base. Finalmente, cuando quiero actualizar el comportamiento de la barra de estado, solo necesito cambiar este
hideStatusBarvalor.Cómo utilizar
Manifestación
Aquí hay una demostración, estoy usando
UIView.animate(...)para hacer la transición más suave.fuente
Estoy usando Xcode 8.1 (8B62) con un objetivo de implementación establecido en 10.1 y no he tenido mucha suerte con las opciones de anulación mencionadas anteriormente. Sin embargo, comprobar la opción "Ocultar barra de estado" en Información de implementación me ayudó.
Proyecto> General
Espero que esto ayude.
fuente
Si presenta el controlador de vista modalmente, intente
fuente
fuente
Puedes usar este código en tu
ViewControllerClassscopefuente
En su Proyecto-> General-> Información de implementación
Estilo de la barra de estado: -
acaba de marcar Ocultar barra de estado (iOS 10)
fuente
Swift 4
fuente
Actualizado para iOS 13 y Swift 5
Si ninguna de las respuestas anteriores funciona para usted. Verifique su lista para ver si tiene esto:
"Ver la apariencia de la barra de estado basada en el controlador"
Si es así, asegúrese de configurarlo en SÍ !!!!!
Entonces el siguiente código funcionará.
fuente