Mon application a un fond sombre, mais dans iOS 7, la barre d'état est devenue transparente. Donc, je ne vois rien là-bas, seulement l'indicateur de batterie vert dans le coin. Comment changer la couleur du texte de la barre d'état en blanc comme sur l'écran d'accueil?
990
Réponses:
Réglez le
UIViewControllerBasedStatusBarAppearance
pourYES
dans le fichier .plist.Dans le
viewDidLoad
do a[self setNeedsStatusBarAppearanceUpdate];
Ajoutez la méthode suivante:
Remarque : cela ne fonctionne pas pour les contrôleurs à l'intérieur
UINavigationController
, veuillez voir le commentaire de Tyson ci-dessous :)Swift 3 - Cela fonctionnera à l'intérieur des contrôleurs
UINavigationController
. Ajoutez ce code dans votre contrôleur.Swift 5 et SwiftUI
Pour SwiftUI, créez un nouveau fichier swift appelé
HostingController.swift
Modifiez ensuite les lignes de code suivantes dans le
SceneDelegate.swift
à
la source
Vous pouvez également désactiver l'apparence de la barre d'état basée sur le contrôleur de vue:
View controller-based status bar appearance
surNO
votreInfo.plist
.[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Remarque: cette méthode est déconseillée dans iOS9. Utilisez-
preferredStatusBarStyle
le à la place sur UIViewController. (voir Apple Developer Library )la source
Vous pouvez le faire sans écrire de ligne de code!
Procédez comme suit pour rendre la couleur du texte de la barre d'état blanche dans toute l'application
Sur votre fichier plist de projet :
Transparent black style (alpha of 0.5)
NO
NO
la source
UIStatusBarStyleLightContent
dans leplist info
HOWEVERTransparent Black
qui fait la même astuce :) plus, vous devez ajouterView controller-based status bar appearance
car il n'est pas là à l'origine et c'est tout ce dont vous avez besoin pour le faire fonctionner :)<key>UIStatusBarStyle</key> <string>UIStatusBarStyleLightContent</string> <key>UIViewControllerBasedStatusBarAppearance</key> <false/>
Remarque: la réponse la plus votée ne fonctionne pas pour iOS 7/8
Dans Info.plist, définissez «Afficher l'apparence de la barre d'état basée sur le contrôleur» sur NON
Dans AppDelegate, ajoutez
à
Cette solution fonctionne pour iOS 7/8
la source
Pour moi, rien ne s'est produit avec l'utilisation de toutes les choses dans les autres réponses (et d'autres sources / documentation). Ce qui a aidé, c'est de définir le style de barre de navigation sur "Noir" dans le XIB. Cela a changé le texte en blanc sans aucun code.
la source
Rien de tout cela n'a fonctionné pour moi, alors voici une solution de travail ...
Dans
Info.plist
, ajoutez une ligne:UIViewControllerBasedStatusBarAppearance
et définissez la valeurNO
.Ensuite, dans AppDelegate in
didFinishLaunchingWithOptions
, ajoutez ces lignes:la source
Vous n'avez pas besoin de faire de code pour cela
Vous devez ajouter la clé "Afficher l'apparence de la barre d'état basée sur le contrôleur" dans info.plist comme suit:
& définissez son type de valeur sur Boolean & valeur sur NO. Cliquez ensuite sur les paramètres du projet, puis sur l'onglet Général et sous Informations sur le déploiement, définissez le style de barre d'état préféré sur.
C'est ça.
la source
Juste deux étapes comme suit:
Étape 1:
Sous l'onglet Info de la
project target
, Ajouter une ligne:UIViewControllerBasedStatusBarAppearance
, définissez la valeurNO
.Étape 2:
Dans le projet
AppDelegate.m
:la source
Cela fonctionne dans Golden Master iOS 7 et Xcode 5 GM seed et iOS7 SDK sorti le 18 septembre 2013 (au moins avec le contrôleur de navigation caché):
Réglez
the UIViewControllerBasedStatusBarAppearance
surNO
dansInfo.plist
.Dans la
ViewDidLoad
méthode ou n'importe où, où voulez-vous changer le style de la barre d'état:[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
la source
Dans le cas où votre UIViewController se trouve dans un UINavigationController, vous devrez définir le BarStyle:
La réponse originale est ici
https://devforums.apple.com/message/844264#844264
la source
Si vous avez un contrôleur de navigation intégré créé via Interface Builder , assurez-vous de définir les éléments suivants dans une classe qui gère votre contrôleur de navigation:
Cela devrait être tout ce dont vous avez besoin.
la source
J'utilise Xcode 6 beta 5 sur un projet Swift , pour une application iOS 7.
Voici ce que j'ai fait et ça marche:
info.plist:
la source
Dans AppDelegate.m, ajoutez ce qui suit.
Et dans le fichier Plist, définissez «Afficher l'apparence de la barre d'état basée sur le contrôleur» sur NON.
la source
Simply In Appdelegate
la source
Eh bien, cela fonctionne vraiment comme un morceau de gâteau pour moi.
Accédez à votre application
info.plist
.View controller-based status bar appearance
surNO
Status bar style
surUIStatusBarStyleLightContent
Ensuite, accédez au délégué de votre application et collez le code suivant dans lequel vous définissez RootViewController de vos fenêtres.
Bingo. Ça marche pour moi.
la source
Allez à
Project
->Target
,Réglez ensuite
Status Bar Style
surLight
. Il rend la barre d'état blanche à partir de l'écran de lancement.Réglez ensuite
View controller-based status bar appearance
égal àNO
inInfo.plist
.la source
View controller-based status bar appearance equal
àNO
était la pièce que je manquais. MerciDans Swift 3, c'est très simple avec seulement 2 étapes. Accédez à votre info.plist et changez la clé
View controller-based status bar appearance
en "NON". Ensuite, dans l'Appdelegate, ajoutez simplement cette ligne dans la méthode didfinishlaunchingwithoptionscela a été déprécié dans iOS9 maintenant, vous devez remplacer cette propriété dans le rootviewcontroller
faire cela a été déconseillé dans iOS 9 devrait le faire sur le rootviewcontroller
la source
iOS 7 permet aux contrôleurs de vue individuels de déterminer l'apparence de la barre d'état, comme décrit dans la documentation du développeur Apple:
La définition globale de l'apparence de la barre d'état est un processus en deux étapes.
Tout d'abord, vous devez indiquer à iOS que vous ne souhaitez pas définir l'apparence de la barre d'état vue par vue.
Ensuite, vous devez prendre les choses en main et définir le nouveau style de barre d'état globale.
Pour désactiver le contrôle de la barre d'état vue par vue, vous devez définir la
View controller-based status bar appearance
propriété dansInfo.plist
.Ouvrez le Navigateur de projet et sélectionnez le projet pour votre application iOS, puis sélectionnez l'onglet Infos.
Passez la souris sur une ligne, puis cliquez sur le signe plus qui apparaît pour ajouter une nouvelle propriété à votre
.plist
.Entrez
View controller-based status bar appearance
dans le champ Clé, puis assurez-vous que le champ Type est défini surBoolean
. Enfin, entrezNO
dans le champ Valeur.Pour définir un style global pour la barre d'état, ajoutez une autre propriété sous l'onglet Info avec une clé de
Status bar style
, un type deString
et une valeur deOpaque black style
.Voici un article de blog avec un peu plus de détails et quelques exemples de code:
http://codebleep.com/setting-the-status-bar-text-color-in-ios-7/
la source
Pas besoin de faire plus, écrivez simplement ce code dans votre viewController et obtenez la couleur de la barre d'état blanc
la source
Réponse mise à jour pour Xcode GM Seed:
En
Info.plist
venteView controller-based status bar appearance
commeNO
Dans le projet, définissez:
Dans ViewDidLoad:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
la source
Je pense que toutes les réponses ne pointent pas vraiment le problème car elles fonctionnent toutes dans des scénarios spécifiques. Mais si vous devez couvrir tous les cas, suivez les points ci-dessous:
Selon l'endroit où vous avez besoin du style d'éclairage de la barre d'état, vous devez toujours avoir à l'esprit ces 3 points:
1) Si vous avez besoin de la barre d'état sur l'écran de lancement ou dans d'autres endroits, où vous ne pouvez pas la contrôler (pas dans les contrôleurs de vue, mais plutôt certains éléments / moments contrôlés par le système comme l'écran de lancement) Vous allez dans les paramètres de votre projet
2) si vous avez un contrôleur à l'intérieur d'un contrôleur de navigation Vous pouvez le changer dans le générateur d'interface comme suit:
a) Sélectionnez la barre de navigation de votre contrôleur de navigation
b) Ensuite, définissez le style de la barre de navigation sur "Noir", car cela signifie que vous aurez un "noir" -> fond sombre sous votre barre d'état, donc il mettra la barre d'état sur blanc
Ou faites-le dans le code comme suit
3) Si vous avez le contrôleur seul qui doit avoir son propre style de barre d'état et qu'il n'est pas intégré dans une structure de conteneur en tant que UINavigationController
Définissez le style de la barre d'état dans le code du contrôleur:
la source
Appelez simplement
dans le
méthode de mes
AppDelegate
travaux idéal pour moi dans iOS7.la source
View controller-based status bar appearance = NO
Ceci est documenté dans le Guide de transition de l'interface utilisateur iOS 7 , auquel vous avez besoin d'un ID de développeur Apple pour accéder directement. L'extrait pertinent:
Peut-être aussi d'intérêt:
Je recommanderais certainement de parcourir le document, auquel vous pouvez à nouveau accéder avec votre identifiant de développeur Apple.
la source
Voici les instructions / instructions Apple concernant le changement de la barre d'état. Seuls Dark & light (while & black) sont autorisés dans la barre d'état.
Voici - Comment changer le style de la barre d'état:
Si vous souhaitez définir le style de la barre d'état, le niveau d'application, puis définissez-
UIViewControllerBasedStatusBarAppearance
leNO
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:
UIViewControllerBasedStatusBarAppearance
pourYES
dans le.plist
fichier, si vous avez besoin de style barre d'état du jeu au niveau UIViewController seulement.Dans la fonction d'ajout de viewDidLoad -
setNeedsStatusBarAppearanceUpdate
remplacez PreferredStatusBarStyle dans votre contrôleur de vue.
-
Définissez la valeur de .plist en fonction du niveau de configuration du style de la barre d'état.
Voici une astuce pour changer / 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.
Voici le résultat:
la source
J'ai fait des choses différentes et ça marche pour moi.
Sans aucun changement de code, j'ai configuré mon fichier .plist comme ceci:
J'espère que ça aide.
Éditer
Pour chaque contrôleur de vue, je modifie la propriété Simulated Metrics de la "barre d'état", dans le storyboard, de "déduit" en "Contenu léger"
la source
Si vous voulez le même résultat avec Swift, vous pouvez utiliser ce code dans votre fichier AppDelegate.swift:
Et le texte de votre barre d'état sera blanc :-)!
la source
Si vous souhaitez toujours utiliser le
View controller-based status bar appearance
paramètre info.plist sur OUI, ce qui signifie que vous pouvez modifier la barre d'état pour chaque contrôleur de vue, utilisez ce qui suit pour le texte blanc dans la barre d'état de ViewDidLoad:la source
Dans Plist, ajoutez ceci:
UIStatusBarStyleLightContent
NO
la source
dans le jeu info.plist la valeur du champ NO Voir l'apparence de la barre d'état en fonction de contrôleur et ensemble statusbar lumière de style dans la cible> réglage général.
la source
Permettez-moi de vous donner une réponse complète à votre question. Changer la couleur du texte de la barre d'état est très facile mais c'est un peu déroutant dans iOS 7 spécialement pour les débutants.
Si vous essayez de changer la couleur du noir au blanc dans Storyboard en sélectionnant le contrôleur de vue et en allant aux mesures simulées sur le côté droit, cela ne fonctionnera pas et je ne sais pas pourquoi. Cela devrait fonctionner en changeant comme ça, mais de toute façon.
Deuxièmement, vous ne trouverez pas la propriété UIViewControllerBasedStatusBarAppearance dans votre plist mais par défaut, elle n'est pas là. Vous devez l'ajouter vous-même en cliquant sur le bouton +, puis définissez-le sur NON.
couleur du texte de la barre d'état ios 7
Enfin, vous devez aller dans votre fichier AppDelegate.m et ajouter ce qui suit dans la méthode didFinishLaunchingWithOptions, ajoutez la ligne suivante:
Cela changera la couleur en blanc pour tous vos contrôleurs de vue. J'espère que cela t'aides!
la source