Ändern Status-Bar-style in XCode 8.2 / Swift 3.0 (Kein "View controller-based status bar appearance")
Ich versuche, ändern Sie das Aussehen von meinem Statuszeile (text weiß/stellen Sie den Stil auf "Licht"). Ich es geschafft, die hintergrund-Farbe durch das hinzufügen dieser zu meinem AppDelegate.swift-Datei:
let statWindow = UIApplication.shared.value(forKey:"statusBarWindow") as! UIView
let statusBar = statWindow.subviews[0] as UIView
statusBar.backgroundColor = UIColor(red: 0/255.0, green: 0/255.0, blue: 0/255.0, alpha: 1.0)
Jedoch, wenn ich auf Stil ändern, wird der text in der Statusleiste, selbst ändern dieses unter der General - > Bereitstellung von Info - > Status-Bar-Stil (ändern Sie dies in "Licht") nicht funktioniert.
Ich habe auch versucht, ändern Sie den status bar Info.plist, aber es gibt kein Feld für "View controller-based status bar appearance" (siehe zweites Bild). Es gibt auch keine option für eine "light" - Stil unter der Status-bar-style-option (siehe unten Bild):
Status-bar-style-Optionen:
Kein view-controller-status-bar-Bereich:
Du musst angemeldet sein, um einen Kommentar abzugeben.
In jedem UIViewController Ihrer Anwendung, die Sie überschreiben sollten
preferredStatusBarStyle
Eigenschaft:und schließlich rufen:
Wenn diese statusBar Stil ist in all Ihrer Bewerbung sollten Sie eine
BaseViewController
Klasse, die diese umsetzen, und machen Sie alle view-Controller Erben von BaseViewController.Den Schritt verpasst, ist Info.plist.
Öffnen Sie die info.plist-Datei der app und legen Sie die UIViewControllerBasedStatusBarAppearance zu KEINE (wie unten gezeigt).
Hinweis: Dieser Schlüssel kann dann Hinzugefügt werden, wenn noch nicht vorhanden von:
1) die Maus über einen vorhandenen Eintrag zu enthüllen, hinzufügen/entfernen von Symbolen:
2) Klicken Sie auf das plus-Symbol fügen Sie einen neuen Schlüssel/Wert-paar:
3) Fügen Sie
UIViewControllerBasedStatusBarAppearance
in das key-Feld und setzen Sie den Wert aufNO
. Hinweis: die Taste ändern, umView controller-based status...
wenn diese Option deaktiviert ist, aber es ist die gleiche Sache:swift 3
wenn View controller-based status bar appearance = JA in der Info.plist
dann verwenden Sie diese Erweiterung für alle NavigationController
wenn es keine UINavigationController und nur UIViewController dann folgenden code verwenden:
objective c
Kategorie erstellen Klasse
Für UIViewController
In UIViewController+StatusBarStyle.h
In UIViewController+StatusBarStyle.m
Für UINavigationController
In UINavigationController+StatusBarStyle.h
In UINavigationController+StatusBarStyle.m
Für Xcode 10, können Sie einfach erstellen Sie eine Klasse für UIViewController oder UITableViewController ecc. und legte es vor Ihrer UIViewController-Klasse, rufen Sie diese Klasse in allen view-controller benötigt ein Licht-content status bar...
in AppDelegate einstellen der status-Bar:
ändert man nun die Klasse UIViewController mit UIViewControllerWithLightStatusBar
... Und das ist es...