ios - superior - quitar el reloj de la pantalla de bloqueo del iphone sin jailbreak
Barra de estado que muestra texto negro, solo en iPhone 6 iOS 8 simulador (14)
Estoy intentando convertir mi aplicación iOS 7 a iOS 8 en Xcode 6 GM, y cuando lo ejecuto en el iPhone 5s o en simuladores inferiores con iOS 8, todo está bien, pero en los simuladores iPhone 6 y 6 Plus, la barra de estado Tiene texto negro en lugar de blanco, como en cualquier otra parte. He configurado Info.plist UIStatusBarStyle en "Estilo negro transparente (alfa de 0.5)" a través de Xcode, y eso parece tener el efecto deseado en cualquier otro lugar. ¿Alguna idea de lo que está pasando?
(No he tocado ninguno de los guiones gráficos todavía, ¿podría ser algo con eso? Esperaba poder postergarlo por un tiempo :)
- Abrir Info.plist
- Agregue una nueva propiedad llamada "Ver apariencia de la barra de estado basada en el controlador" (booleano) y establezca su valor en "NO"
- Agregue una nueva propiedad llamada "Estilo de barra de estado" (Cadena) y establezca su valor en "Estilo negro opaco"
Hecho.
Agregue la siguiente línea en el método didFinishLaunchingWithOptions:
AppDelegate
didFinishLaunchingWithOptions:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque animated:NO];
Aquí están las Pautas / Instrucciones de Apple sobre la barra de estado / cambio de color del texto.
Aquí está - Cómo cambiar el estilo de la barra de estado:
Si desea configurar el estilo de la barra de estado, el nivel de la aplicación, establezca UIViewControllerBasedStatusBarAppearance
en NO
en su archivo `.plist ''.
O programáticamente puedes hacerlo desde App Delegate:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
application.statusBarStyle = .lightContent
return true
}
Si desea configurar el estilo de la barra de estado, en el nivel del controlador de vista, siga estos pasos:
- Establezca
UIViewControllerBasedStatusBarAppearance
enYES
en el archivo.plist
, si necesita establecer el estilo de la barra de estado solo en el nivel UIViewController. En la función de adición
setNeedsStatusBarAppearanceUpdate
-setNeedsStatusBarAppearanceUpdate
invalide preferredStatusBarStyle en su controlador de vista.
-
override func viewDidLoad() {
super.viewDidLoad()
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
Establezca el valor de .plist según el nivel de configuración del estilo de la barra de estado.
Así que aquí es cómo lo arreglé
En PLIST View Controlador basado en barra de estado NO estilo de barra de estado UIStatusBarStyleLightContent
En AppDelegate DidFinishLaunching
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
[self.window setBackgroundColor:[UIColor whiteColor]];
En cada controlador de vista
- (UIStatusBarStyle) preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
En su Guión gráfico, seleccione su controlador de vista raíz y configure el tipo de barra de estado predeterminado
Este error solo ocurre si su aplicación se está escalando para adaptarse a la resolución de los dispositivos más nuevos.
Una solución rápida (quién sabe si esto se solucionará en 8.1) es proporcionar la resolución adecuada cargando imágenes en su paquete de aplicaciones.
Desde https://developer.apple.com/ios/human-interface-guidelines/graphics/launch-screen/
For iPhone 7, iPhone 6s, iPhone 6:
750 x 1334 (@2x) for portrait
1334 x 750 (@2x) for landscape
For iPhone 7 Plus, iPhone 6s Plus, iPhone 6 Plus:
1242 x 2208 (@3x) for portrait
2208 x 1242 (@3x) for landscape
En mi aplicación, solo admitimos retrato, por lo que la resolución de 750x1334 y 1242x2208 lo solucionó.
Y solo para confirmar en caso de que no fuera obvio, DEBE usar UIStatusBarStyleLightContent para el estilo de la barra de estado.
He realizado los siguientes pasos y me funcionaron bastante bien, también debería funcionar en iOS 8+.
1) Propiedad agregada Ver apariencia de la barra de estado basada en el controlador => NO en Info.plist.
2) Agregue la siguiente pieza de código en - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
de AppDelegate.m
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
[self.window setBackgroundColor:[UIColor redColor]]; // Change color as per need.
3) Método de anulación en ViewController
- (UIStatusBarStyle) preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
La barra de estado de mi aplicación funcionaba bien en iOS 7 usando solo la configuración del proyecto / destino:
Status bar style = UIStatusBarStyleLightContent
y
View controller-based status bar appearance = NO
pero en iOS 8 (simuladores de iPhone 6 y iPhone 6 Plus) no se mostraba la barra de estado. Cambiar la apariencia de la barra de estado basada en el controlador de vista a SÍ y luego agregar:
// Objective C
- (UIStatusBarStyle) preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
//Swift
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return UIStatusBarStyle.LightContent
}
El ViewController dio como resultado ver la barra de estado blanca nuevamente, pero solo después de que se iniciara el controlador raíz inicial. Durante el lanzamiento inicial, la barra de estado permanece en negro.
Para swift 4 y iOS 11
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
application.statusBarStyle = .lightContent
return true
}
Paso 1: abra el archivo info.plist de su aplicación y establezca UIViewControllerBasedStatusBarAppearance en NO
Paso 2: el archivo info.plist de tu aplicación y configura el "Estilo de barra de estado" en UIStatusBarStyleLightContent
Podría ser un problema con el simulador. Use esto para anular la barra de estado predeterminada o la barra de estado para un controlador de vista específico.
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return UIStatusBarStyle.LightContent
} //This is swift code
Sé que es un mal estilo para anular el comportamiento en una clase base usando una categoría, pero esto funciona y puede ser la solución más rápida para solucionarlo.
Paso n. ° 1: asegúrese de que UIViewControllerBasedStatusBarAppearance
o View controller-based status bar appearance
esté configurada en YES
en el archivo plist de su aplicación.
Paso # 2: Agrega el siguiente código a tu proyecto:
@implementation UIViewController (StatusBarColorFix)
- (UIStatusBarStyle) preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
@end
Una buena solución para esto es utilizar el nuevo soporte de plumilla de imagen de lanzamiento que se usa en los modelos de iPhone 6. Parece que solo hay un error en iOS 8 que significa que los modelos de iPhone 6 no comprueban correctamente el estilo de la barra de estado cuando se inician, pero se resuelven si se agrega la punta de inicio.
Como Aaron Wasserman señaló, también puedes especificar los PNG de lanzamiento de iPhone 6 y 6+, y eso parece solucionar el problema también, ¡siempre que los configures correctamente!
Una respuesta similar (actualmente votada como 2da) ya se ha publicado, compre con el fin de mantener esta publicación actualizada, aquí está la versión Swift .
Agregue una fila a su archivo info.plist llamada Vista de la apariencia de la barra de estado basada en el controlador y establezca su valor booleano en NO .
En su archivo AppDelegate.swift , agregue el siguiente método:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool { UIApplication.sharedApplication().statusBarStyle = .LightContent return true }
No necesitaba hacer este paso para que funcione (es decir, hacer los pasos 1 y 2 y podría funcionar). Si no, intente agregar el siguiente método a cada uno de sus ViewControllers :
override func preferredStatusBarStyle() -> UIStatusBarStyle { return UIStatusBarStyle.LightContent }
Espero que esto haya sido útil,
Loic