49 votes

SwiftUI : couleur de la barre d'état

Existe-t-il un moyen de changer la barre d'état en blanc pour une vue SwiftUI ?

Il me manque probablement quelque chose de simple, mais je n'arrive pas à trouver un moyen de changer la barre d'état en blanc dans SwiftUI. Jusqu'à présent, je ne vois que .statusBar(hidden: Bool) .

26voto

Dano Points 2674

La couleur du texte/de la teinte/du premier plan de la barre d'état peut être définie sur blanc en définissant le schéma de couleurs du mode View .dark ou .light .preferredColorScheme(_ colorScheme: ColorScheme?) .

La première vue de votre hiérarchie qui utilise cette méthode aura la priorité.

Par exemple:

 var body: some View {
  ZStack { ... }
  .preferredColorScheme(.dark) // white tint on status bar
}
 var body: some View {
  ZStack { ... }
  .preferredColorScheme(.light) // black tint on status bar
}

15voto

Hannes Sverrisson Points 6592

SwiftUI

Créez un contrôleur d'hébergement, DarkHostingController et définissez le preferredStatusBarStyle dessus :

 class DarkHostingController<ContentView> : UIHostingController<ContentView> where ContentView : View {
    override dynamic open var preferredStatusBarStyle: UIStatusBarStyle {
        .lightContent
    }
}

et envelopper dans SceneDelegate :

 window.rootViewController = DarkHostingController(rootView: ContentView())

15voto

Muvimotv Points 326

Dans info.plist, vous pouvez simplement définir

  • "Style de barre d'état" à "Contenu léger"
  • "Afficher l'apparence de la barre d'état basée sur le contrôleur" sur NON

Pas besoin de changer quoi que ce soit dans votre code...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X