Mi aplicación tiene un fondo oscuro, pero en iOS 7 la barra de estado se volvió transparente. Así que no puedo ver nada allí, solo el indicador verde de la batería en la esquina. ¿Cómo puedo cambiar el color del texto de la barra de estado a blanco como en la pantalla de inicio?
990
Respuestas:
Ajuste el
UIViewControllerBasedStatusBarAppearance
queYES
en el archivo plist.En el
viewDidLoad
hacer un[self setNeedsStatusBarAppearanceUpdate];
Agregue el siguiente método:
Nota : Esto no funciona para los controladores internos
UINavigationController
, consulte el comentario de Tyson a continuación :)Swift 3 : esto funcionará con controladores en el interior
UINavigationController
. Agregue este código dentro de su controlador.Swift 5 y SwiftUI
Para SwiftUI, cree un nuevo archivo swift llamado
HostingController.swift
Luego cambie las siguientes líneas de código en el
SceneDelegate.swift
a
fuente
Alternativamente, puede optar por salir de la apariencia de la barra de estado basada en el controlador de vista:
View controller-based status bar appearance
aNO
en suInfo.plist
.[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Nota: Este método ha quedado en desuso en iOS9. Úselo
preferredStatusBarStyle
en el UIViewController en su lugar. (ver Apple Developer Library )fuente
¡Puede hacer esto sin escribir ninguna línea de código!
Haga lo siguiente para que el texto de la barra de estado sea de color blanco en toda la aplicación
En su proyecto plist file:
Transparent black style (alpha of 0.5)
NO
NO
fuente
UIStatusBarStyleLightContent
enplist info
SIN EMBARGOTransparent Black
que haga el mismo truco :) además, debes agregarloView controller-based status bar appearance
ya que originalmente no está allí y es todo lo que necesitas para que funcione :)<key>UIStatusBarStyle</key> <string>UIStatusBarStyleLightContent</string> <key>UIViewControllerBasedStatusBarAppearance</key> <false/>
Nota: La respuesta más votada no funciona para iOS 7/8
En Info.plist establezca 'Ver apariencia de la barra de estado basada en el controlador' como NO
En AppDelegate agregar
a
Esta solución funciona para iOS 7/8
fuente
Para mí, no pasó nada con el uso de todas las cosas en las otras respuestas (y de otras fuentes / documentación). Lo que sí ayudó fue establecer el Estilo de la barra de navegación en "Negro" en el XIB. Esto cambió el texto a blanco sin ningún código en absoluto.
fuente
Nada de eso funcionó para mí, así que aquí hay una solución que funciona ...
En
Info.plist
, agregue una fila:UIViewControllerBasedStatusBarAppearance
y establezca el valorNO
.Luego, en AppDelegate
didFinishLaunchingWithOptions
, agregue estas filas:fuente
No necesitas hacer ningún código para esto
Debe agregar la clave "Ver la apariencia de la barra de estado basada en el controlador" en info.plist de la siguiente manera:
& establece su tipo de valor en Boolean & value en NO. Luego haga clic en la configuración del proyecto, luego haga clic en la pestaña General y en Información de implementación configure el estilo de barra de estado preferido en.
Eso es.
fuente
Solo dos pasos de la siguiente manera:
Paso 1:
En la pestaña Información de
project target
, Agregar fila:UIViewControllerBasedStatusBarAppearance
, establecer valorNO
.Paso 2:
En el proyecto
AppDelegate.m
:fuente
Esto funciona en Golden Master iOS 7 y Xcode 5 GM seed y iOS7 SDK lanzado el 18 de septiembre de 2013 (al menos con el controlador de navegación oculto):
Ajuste
the UIViewControllerBasedStatusBarAppearance
aNO
laInfo.plist
.En el
ViewDidLoad
método o en cualquier lugar, ¿dónde desea cambiar el estilo de la barra de estado?[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
fuente
En caso de que su UIViewController esté dentro de un UINavigationController, deberá configurar BarStyle:
La respuesta original está aquí
https://devforums.apple.com/message/844264#844264
fuente
Si tiene un controlador de navegación integrado creado a través de Interface Builder , asegúrese de configurar lo siguiente en una clase que administra su controlador de navegación:
Eso deberia ser todo lo que necesitas.
fuente
Estoy usando Xcode 6 beta 5 en un proyecto Swift , para una aplicación iOS 7.
Esto es lo que hice, y funciona:
info.plist:
fuente
En AppDelegate.m, agregue lo siguiente.
Y en el archivo Plist, establezca 'Ver apariencia de la barra de estado basada en el controlador' en NO.
fuente
Simplemente en Appdelegate
fuente
Bueno, esto realmente funciona como un pedazo de pastel para mí.
Ve a tu aplicación
info.plist
.View controller-based status bar appearance
enNO
Status bar style
enUIStatusBarStyleLightContent
Luego, vaya al delegado de su aplicación y pegue el siguiente código donde configure el RootViewController de Windows.
Bingo. Me esta funcionando.
fuente
Ve a
Project
->Target
,Luego configúrelo
Status Bar Style
enLight
. Hace que la barra de estado sea blanca desde la pantalla de inicio.Luego establecer
View controller-based status bar appearance
igual aNO
enInfo.plist
.fuente
View controller-based status bar appearance equal
aNO
era la pieza que faltaba. GraciasEn Swift 3 es muy fácil solo con 2 pasos. Vaya a su lista de información y cambie la clave
View controller-based status bar appearance
a "NO". Luego, en el Appdelegate, solo agregue esta línea en el método didfinishlaunchingwithoptionsesto ha quedado en desuso en iOS9 ahora debería anular esta propiedad en el controlador de vista raíz
hacer esto ha quedado en desuso en iOS 9 debería hacerlo en el controlador rootview
fuente
iOS 7 permite que los controladores de vista individuales determinen la apariencia de la barra de estado, como se describe en la documentación del desarrollador de Apple:
Establecer la apariencia de la barra de estado a nivel mundial es un proceso de dos pasos.
Primero, debe decirle a iOS que no desea establecer la apariencia de la barra de estado vista por vista.
Luego debe hacerse cargo y establecer el nuevo estilo de barra de estado global.
Para deshabilitar el control de la barra de estado de vista por vista, deberá establecer la
View controller-based status bar appearance
propiedad enInfo.plist
.Abra el Navegador de proyectos y seleccione el proyecto para su aplicación iOS, luego seleccione la pestaña Información.
Desplácese sobre una fila, luego haga clic en el signo más que aparece para agregar una nueva propiedad a su
.plist
.Ingrese
View controller-based status bar appearance
en el campo Clave, luego asegúrese de que el campo Tipo esté configurado enBoolean
. Finalmente, ingreseNO
en el campo Valor.Para establecer un estilo global para la barra de estado, agregue otra propiedad en la pestaña Información con una clave de
Status bar style
, un Tipo deString
y un Valor deOpaque black style
.Aquí hay una publicación de blog con un poco más de detalle y un código de muestra:
http://codebleep.com/setting-the-status-bar-text-color-in-ios-7/
fuente
No es necesario hacer un poco más, solo escriba este código en su viewController y obtenga el color de la barra de estado blanco
fuente
Respuesta actualizada para Xcode GM Seed:
En
Info.plist
ponerView controller-based status bar appearance
comoNO
En el proyecto, establezca:
En ViewDidLoad:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
fuente
Creo que todas las respuestas no apuntan realmente al problema porque todas ellas funcionan en escenarios específicos. Pero si necesita cubrir todos los casos, siga los siguientes puntos:
Dependiendo de dónde necesite el estilo de luz de la barra de estado, siempre debe tener en cuenta estos 3 puntos:
1) Si necesita la barra de estado en la pantalla de inicio o en otros lugares, donde no puede controlarla (no en los controladores de vista, sino en algunos elementos / momentos controlados por el sistema como Pantalla de inicio) Vaya a la configuración de su proyecto
2) si tiene un controlador dentro de un controlador de navegación Puede cambiarlo en el generador de interfaces de la siguiente manera:
a) Seleccione la barra de navegación de su controlador de navegación
b) Luego configure el estilo de la barra de navegación en "Negro", porque esto significa que tendrá un fondo "negro" -> oscuro debajo de su barra de estado, por lo que establecerá la barra de estado en blanco
O hazlo en código de la siguiente manera
3) Si solo tiene el controlador que necesita tener su propio estilo de barra de estado y no está incrustado en alguna estructura de contenedor como UINavigationController
Establezca el estilo de la barra de estado en el código del controlador:
fuente
Simplemente llamando
en el
El método de mis
AppDelegate
trabajos es excelente para mí en iOS7.fuente
View controller-based status bar appearance = NO
Esto está documentado en la Guía de transición de la interfaz de usuario de iOS 7 , a la que necesita una ID de desarrollador de Apple para acceder directamente. El extracto relevante:
También posiblemente de interés:
Definitivamente recomiendo echar un vistazo al documento, al que, nuevamente, puede acceder con su ID de desarrollador de Apple.
fuente
Aquí están las pautas / instrucciones de Apple sobre el cambio de la barra de estado. Solo oscuro y claro (mientras que negro) están permitidos en la barra de estado.
Aquí está - Cómo cambiar el estilo de la barra de estado:
Si quieres estilo de barra de estado conjunto, a nivel de aplicación a continuación, establece
UIViewControllerBasedStatusBarAppearance
queNO
en su archivo `.Plist'.si desea establecer el estilo de la barra de estado, en el nivel de vista del controlador, siga estos pasos:
UIViewControllerBasedStatusBarAppearance
aYES
en el.plist
archivo, si necesita establecer el estilo de la barra de estado solo en el nivel UIViewController.En la función viewDidLoad add -
setNeedsStatusBarAppearanceUpdate
anule preferredStatusBarStyle en su controlador de vista.
-
Establezca el valor de .plist según el nivel de configuración del estilo de la barra de estado.
Aquí hay un truco hacky para cambiar / establecer el color de fondo para la barra de estado durante el inicio de la aplicación o durante viewDidLoad de su controlador de vista.
Aquí está el resultado:
fuente
Hice algunas cosas diferentes y me funciona.
Sin cambios en el código, configuré mi archivo .plist así:
Espero que ayude.
editar
Para cada controlador de vista, cambio la propiedad de Métricas simuladas de la "barra de estado", en el guión gráfico, de "inferido" a "Contenido ligero"
fuente
Si desea el mismo resultado con Swift, puede usar este código en su archivo AppDelegate.swift:
Y el texto de su barra de estado será blanco :-)!
fuente
Si aún desea usar
View controller-based status bar appearance
en info.plist establecido en SÍ, lo que significa que puede cambiar la barra de estado para cada controlador de vista, use lo siguiente para el texto blanco en la barra de estado en ViewDidLoad:fuente
En Plist, agregue esto:
UIStatusBarStyleLightContent
NO
fuente
en info.plist establezca el valor del campo NO Vea la apariencia de la barra de estado basada en el controlador y configure la luz de estilo de la barra de estado en destino> configuración general.
fuente
Déjame darte una respuesta completa a tu pregunta. Cambiar el color del texto de la barra de estado es muy fácil, pero es un poco confuso en iOS 7 especialmente para los novatos.
Si está tratando de cambiar el color de negro a blanco en Storyboard seleccionando el controlador de vista y yendo a Métricas simuladas en el lado derecho, no funcionará y no sé por qué. Debería funcionar cambiando así, pero de cualquier manera.
En segundo lugar, no encontrará la propiedad UIViewControllerBasedStatusBarAppearance en su plist, pero de forma predeterminada no está allí. Debe agregarlo usted mismo haciendo clic en el botón + y luego configúrelo en NO.
color de texto de la barra de estado de ios 7
Por último, debe ir a su archivo AppDelegate.m y agregar lo siguiente en el método didFinishLaunchingWithOptions, agregue la siguiente línea:
Esto cambiará el color a blanco para todos sus controladores de vista. ¡Espero que esto ayude!
fuente