Frage Wie ändere ich die Farbe der Statusleiste in iOS?


Meine Anwendung hat einen dunklen Hintergrund, aber in iOS 7 wurde die Statusleiste transparent. Da kann ich nichts sehen, nur die grüne Batterieanzeige in der Ecke. Wie kann ich die Textfarbe der Statusleiste wie im Startbildschirm ändern?


926
2017-07-16 14:11


Ursprung


Antworten:


  1. Stellen Sie das ein UIViewControllerBasedStatusBarAppearance zu YES in der .plist-Datei.

  2. In dem viewDidLoad mach a [self setNeedsStatusBarAppearanceUpdate]; 

  3. Fügen Sie die folgende Methode hinzu:

    - (UIStatusBarStyle)preferredStatusBarStyle
    { 
        return UIStatusBarStyleLightContent; 
    }
    

Hinweis: Dies funktioniert nicht für Controller im Inneren UINavigationController, bitte sehen Tysons Kommentar unten :)

Schnell 3 - Dies wird die Controller funktionieren UINavigationController. Fügen Sie diesen Code in Ihrem Controller hinzu.

// Preferred status bar style lightContent to use on dark background.
// Swift 3
override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

1310
2017-07-21 03:36



Alternativ können Sie die Ansichtssteuerungsstatusleiste deaktivieren:

  1. einstellen View controller-based status bar appearance zu NO in deinem Info.plist.
  2. Anruf [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

Hinweis: Diese Methode ist in iOS9 veraltet. Benutzen preferredStatusBarStyle stattdessen auf dem UIViewController. (sehen Apple Entwicklerbibliothek)


841
2017-08-12 10:35



Sie können dies tun, ohne eine Codezeile zu schreiben!
Führen Sie die folgenden Schritte aus, um den Text der Statusleiste über die gesamte App weiß zu machen

Auf dich Projekt plist Datei:

  • Statusleistenstil: Transparent black style (alpha of 0.5)
  • Controller-basierte Statusleiste anzeigen: NO
  • Die Statusleiste ist zunächst verborgen: NO

432
2017-09-11 04:47



Hinweis: Die meisten neuen Antworten funktionieren nicht für iOS 7/8 

Setzen Sie in Info.plist 'Controller-basierte Statusleiste anzeigen' auf NEIN

In AppDelegate hinzufügen

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

zu

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
   ......
   ...
}    

Diese Lösung funktioniert für iOS 7/8


241
2017-09-23 05:11



Für mich ist nichts passiert mit der Verwendung aller Dinge in den anderen Antworten (und aus anderen Quellen / Dokumentation). Was half war, den Navigationsleistenstil in der XIB auf "Schwarz" zu setzen. Dadurch wurde der Text ohne jeglichen Code in Weiß geändert.

Enter image description here


107
2017-09-12 16:42



Nichts davon funktionierte für mich, also hier ist eine funktionierende Lösung ...

Im Info.plist, füge eine Zeile hinzu:

UIViewControllerBasedStatusBarAppearanceund legen Sie den Wert fest NO.

Dann in AppDelegate in didFinishLaunchingWithOptions, füge diese Zeilen hinzu:

[application setStatusBarHidden:NO];
[application setStatusBarStyle:UIStatusBarStyleLightContent];

95
2017-12-29 11:28



Sie müssen dafür keinen Code eingeben

Sie müssen in der Datei "info.plist" den Schlüssel "View controller-based status bar appearance" wie folgt hinzufügen: enter image description here

Setzen Sie seinen Werttyp auf Boolean & value auf NO. Klicken Sie dann auf die Projekteinstellungen und dann auf die Registerkarte Allgemein. Setzen Sie unter Bereitstellungsinformationen den bevorzugten Statusleistenstil auf .Lichten Sie wie folgt:

enter image description here

Das ist es.


53
2018-02-09 09:00