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.plist
conjuntoView controller-based status bar appearance
aNO
Y llama
UIApplication.shared.isStatusBarHidden = true
fuente
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
prefersStatusBarHidden
propiedad como lo que ya se ha mencionado.prefersStatusBarHidden
es 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.prefersStatusBarHidden
alterará 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.plist
simplemente agregue
View controller-based status bar appearance
aNO
y
Status bar is initially hidden
comoYES
fuente
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 true
en 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
prefersStatusBarHidden
y 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.plist
archivo 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 = true
oy
funciona pero no proporciona una solución programable donde pueda cambiar una condición. (
statusBarHidden = true
ystatusBarHidden = false
como 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 laUIViewControllerBasedStatusBarAppearance
configuración a su info.plist :luego úsalo así en todo tu código:
O
fuente
prefersStatusBarHidden
sentido llamar? Supongo que te refieresself.setNeedsStatusBarAppearanceUpdate()
después deshowStatusBar
asignarSolo para agregar, al anular el
prefersStatusBarHidden
método o la variable, la listaView controller-based status bar appearance
de 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
BaseViewController
que 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
hideStatusBar
valor.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
ViewController
Class
scope
fuente
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