web-dev-qa-db-fra.com

Modification de la couleur du texte de la barre d'état dans l'écran de démarrage iOS 7

Je sais que sont déjà quelques stackoverflowquestions qui disent comment changer la barre d'état pour tous les contrôleurs de vue. Je change actuellement la couleur de la barre d'état de cette façon:

if(IS_IOS7)
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

Dans le application:DidFinishLaunching

De plus, j'ai changé la valeur de UIViewControllerBasedStatusBarAppearance dans la liste de sélection en NO. Cependant, dans l'écran de démarrage, il affiche toujours le texte de la barre d'état avec la couleur noire.

Est-il possible de changer la couleur de la couleur du texte de la barre d'état dans l'écran de démarrage ?

94
Tiago Almeida

Dans le fichier de liste de projets, ajoutez la propriété "Style de la barre d'état" (la clé est UIStatusBarStyle). Ignorez ensuite toutes les valeurs possibles répertoriées dans la liste déroulante pour cette propriété et tapez UIStatusBarStyleLightContent à la place.

Et vous n'avez pas besoin de définir UIViewControllerBasedStatusBarAppearancepour NO dans votre liste d'adresses, vous pouvez définir le preferredStatusBarStyle que vous voulez sur vos contrôleurs de vue.

215
Vinzzz

Vous pouvez le faire sans écrire aucune ligne de code
Procédez comme suit pour que le texte de la barre d'état soit de couleur blanche dans l'ensemble de l'application.

Sur vous projet fichier:

  • Style de la barre d'état: UIStatusBarStyleLightContent
  • Afficher l'apparence de la barre d'état basée sur le contrôleur: NO
  • La barre d'état est initialement masquée: NO
32
Lucas

Vous pouvez effectuer les opérations suivantes pour obtenir une barre d’état de couleur claire dans l’application.

  1. Sélectionnez le nom du projet dans le navigateur de projet.
  2. Sélectionnez le nom d'une cible dans la liste de la colonne de gauche de l'éditeur de projet.
  3. Cliquez sur Général en haut de l'éditeur de projet.
  4. Définir le style de la barre d'état -> Léger

Dans votre fichier plist, ajoutez les valeurs suivantes:

  1. Style de la barre d'état - UIStatusBarStyleLightContent
  2. Afficher l'apparence de la barre d'état basée sur le contrôleur - NON

Cela vous aidera à obtenir la barre d'état en couleur BLANCHE dans toute l'application, y compris SPLASH SCREEN.

18
Anooj VM

Définissez le UIViewControllerBasedStatusBarAppearance sur Non dans le plist

Ajoutez ensuite le code suivant dans l'option de lancement terminé

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {

   [application setStatusBarStyle:UIStatusBarStyleLightContent];

    self.window.clipsToBounds =YES;

    self.window.frame =  CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);
}

S'il vous plaît suivez ce code cela a fonctionné pour moi

7
Preejith augustine

Voici Directives/Instructions Apple concernant le changement de barre d'état.

Voici comment modifier le style de la barre d'état:

Si vous souhaitez définir le style de la barre d'état, le niveau de l'application, définissez ensuite UIViewControllerBasedStatusBarAppearance sur NO dans votre fichier `.plist '.

si vous souhaitez définir le style de la barre d'état au niveau du contrôleur de vue, procédez comme suit:

  1. Définissez UIViewControllerBasedStatusBarAppearance sur YES dans le .plist fichier, si vous devez définir le style de la barre d'état au niveau UIViewController uniquement.
  2. Dans la fonction d'ajout viewDidLoad - setNeedsStatusBarAppearanceUpdate

  3. écrasez preferredStatusBarStyle dans votre contrôleur de vue.

-

override func viewDidLoad() {
    super.viewDidLoad()
    self.setNeedsStatusBarAppearanceUpdate()
}

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

Définissez la valeur de .plist en fonction du niveau de configuration du style de la barre d'état. enter image description here


Vous pouvez définir la couleur d’arrière-plan de la barre d’état lors du lancement de l’application ou pendant viewDidLoad de votre contrôleur de vue.

extension UIApplication {

    var statusBarView: UIView? {
        return value(forKey: "statusBar") as? UIView
    }

}

// Set upon application launch, if you've application based status bar
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
        return true
    }
}


or 
// Set it from your view controller if you've view controller based statusbar
class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
    }

}



Voici le résultat:

enter image description here

2
Krunal

Vous pouvez effectuer les opérations suivantes pour obtenir une barre d’état de couleur claire dans l’application.

Sélectionnez le nom du projet dans le navigateur de projet. Sélectionnez le nom d'une cible dans la liste de la colonne de gauche de l'éditeur de projet. Cliquez sur Général en haut de l'éditeur de projet. Définir le style de la barre d'état -> Léger

1
Usman Nisar