El desarrollo de iOS establece el color de fuente de la barra de estado

La fuente de la barra de estado es negra: UIStatusBarStyleDefault
La fuente de la barra de estado es blanca: UIStatusBarStyleLightContent

1. En info.plist, establezca Ver la apariencia de la barra de estado basada en el controlador en NO**

El color de la fuente de la barra de estado solo lo establecen las siguientes propiedades y el valor predeterminado es blanco:

// default is UIStatusBarStyleDefault
[UIApplication sharedApplication].statusBarStyle

Cómo resolver el problema de los diferentes colores de fuente de la barra de estado en VC individuales

  1. En info.plist, establezca Ver la apariencia de la barra de estado basada en el controlador en NO.
  2. En el delegado de la aplicación: En el delegado de la aplicación:
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

3. En algunos vcs donde el color de fuente de la barra de estado es diferente

- (void)viewWillAppear:(BOOL)animated{
    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
}

2. En info.plist, configure Ver la apariencia de la barra de estado basada en el controlador en SÍ, o no lo configure.

El valor predeterminado de la apariencia de la barra de estado basada en el controlador de vista es SÍ.
Si Ver la apariencia de la barra de estado basada en el controlador es SÍ.
Entonces [UIApplication shareApplication].statusBarStyle no es válido.

Utilice el siguiente método:
1. Vuelva a escribir el método preferidoStatusBarStyle de vc en vc.

- (UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleDefault;
}

2. Llame a viewDidload: [self setNeedsStatusBarAppearanceUpdate];
Sin embargo, cuando vc está en navegación, el método anterior es inútil y no es necesario llamar al método preferidoStatusBarStyle en vc.
La razón es que después de emitir [self setNeedsStatusBarAppearanceUpdate],
solo se llamará al método preferidoStatusBarStyle en el controlador de navegación, y
no se llamará al método preferidoStatusBarStyley en vc.

Hay dos soluciones:

método uno:

Configurar la propiedad barStyle de la barra de navegación afectará la fuente y el color de fondo de la barra de estado. como sigue.

//status bar的字体为白色

//导航栏的背景色是黑色。

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

//status bar的字体为黑色

//导航栏的背景色是白色,状态栏的背景色也是白色。

//self.navigationController.navigationBar.barStyle = UIBarStyleDefault;

Método 2:
personalice una subclase de la barra de navegación y anule el método preferidoStatusBarStyle en esta subclase:

MyNav* nav = [[MyNav alloc] initWithRootViewController:vc];

self.window.rootViewController = nav;

@implementation MyNav

- (UIStatusBarStyle)preferredStatusBarStyle
{
    UIViewController* topVC = self.topViewController;
    return [topVC preferredStatusBarStyle];
}

Supongo que te gusta

Origin blog.csdn.net/biyuhuaping/article/details/85709521
Recomendado
Clasificación