Le développement iOS définit la couleur de la police de la barre d'état

La police de la barre d'état est noire : UIStatusBarStyleDefault
La police de la barre d'état est blanche : UIStatusBarStyleLightContent

1. Dans info.plist, définissez Afficher l'apparence de la barre d'état basée sur le contrôleur sur NON**

La couleur de la police de la barre d'état est uniquement définie par les propriétés suivantes et est par défaut blanche :

// default is UIStatusBarStyleDefault
[UIApplication sharedApplication].statusBarStyle

Comment résoudre le problème des différentes couleurs de police de la barre d'état dans les VC individuels

  1. Dans info.plist, définissez Afficher l’apparence de la barre d’état basée sur le contrôleur sur NON.
  2. Dans le délégué de l'application : Dans le délégué de l'application :
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

3. Dans certains VCS où la couleur de la police de la barre d'état est différente

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

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

2. Dans info.plist, définissez l'apparence de la barre d'état basée sur le contrôleur sur OUI ou ne la définissez pas.

La valeur par défaut de l’apparence de la barre d’état basée sur le contrôleur View est OUI.
Si l’apparence de la barre d’état basée sur le contrôleur View est OUI.
Ensuite, [UIApplication sharedApplication].statusBarStyle n'est pas valide.

Utilisez la méthode suivante :
1. Réécrivez la méthode PreferredStatusBarStyle de vc dans vc.

- (UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleDefault;
}

2. Appelez viewDidload : [self setNeedsStatusBarAppearanceUpdate] ;
Cependant, lorsque vc est dans nav, la méthode ci-dessus est inutile et la méthode PreferredStatusBarStyle dans vc n'a pas du tout besoin d'être appelée.
La raison en est qu'après l'émission de [self setNeedsStatusBarAppearanceUpdate],
seule la méthode PreferredStatusBarStyle dans le contrôleur de navigation sera appelée et
la méthode PreferredStatusBarStyley dans vc ne sera pas appelée.

Il existe deux solutions :

première méthode :

La définition de la propriété barStyle de navbar affectera la police et la couleur d'arrière-plan de la barre d'état. comme suit.

//status bar的字体为白色

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

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

//status bar的字体为黑色

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

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

Méthode 2 :
personnalisez une sous-classe de barre de navigation et remplacez la méthode PreferredStatusBarStyle dans cette sous-classe :

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

self.window.rootViewController = nav;

@implementation MyNav

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

Je suppose que tu aimes

Origine blog.csdn.net/biyuhuaping/article/details/85709521
conseillé
Classement