iOS
Wijzig statusbalkkleur
Zoeken…
Voor niet-UINavigationBar-statusbalken
- Stel in info.plist
View controller-based status bar appearance
opYES
- In het zicht implementeren controllers die niet zijn opgenomen in
UINavigationController
deze methode.
In doelstelling-C:
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
In Swift:
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return UIStatusBarStyle.LightContent
}
Voor UINavigationBar-statusbalken
Subklasse UINavigationController en vervang vervolgens deze methoden:
In doelstelling-C:
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
In Swift:
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .lightContent
}
Als alternatief kunt u barStyle
op de instantie UINavigationBar
:
Doelstelling C:
// e.g. in your view controller's viewDidLoad method:
self.navigationController.navigationBar.barStyle = UIBarStyleBlack; // this will give you a white status bar
Snel
// e.g. in your view controller's viewDidLoad method:
navigationController?.navigationBar.barStyle = .black // this will give you a white status bar
UIBarStyle
opties zijn default
, black
, blackOpaque
, blackTranslucent
. De laatste 3 zou je allemaal een statusbalk met witte tekst moeten geven, alleen de laatste twee geven de dekking van de balk aan.
Opmerking: u kunt de weergave van uw navigatiebalk nog steeds naar wens wijzigen.
Als u de code van ViewController niet kunt wijzigen
Als u een bibliotheek gebruikt die bijvoorbeeld AwesomeViewController bevat met een verkeerde statusbalkkleur, kunt u dit proberen:
let awesomeViewController = AwesomeViewController()
awesomeViewController.navigationBar.barStyle = .blackTranslucent // or other style
Voor beheersing van ViewController
Als u UIViewControllerContainment
, zijn er een paar andere methoden die het bekijken waard zijn.
Wanneer u een child viewController wilt om de presentatie van de statusbalk te besturen (dwz als het kind bovenaan het scherm staat
in Swift
class RootViewController: UIViewController {
private let messageBarViewController = MessageBarViewController()
override func childViewControllerForStatusBarStyle() -> UIViewController? {
return messageBarViewController
}
override func viewDidLoad() {
super.viewDidLoad()
//add child vc code here...
setNeedsStatusBarAppearanceUpdate()
}
}
class MessageBarViewController: UIViewController {
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .Default
}
}
De statusbalkstijl wijzigen voor de hele applicatie
SNEL:
Stap 1:
Voeg in uw Info.plist het volgende kenmerk toe:
View controller-based status bar appearance
en stel de waarde in op
NO
zoals beschreven in de onderstaande afbeelding:
Stap 2:
Voeg deze code toe in uw AppDelegate.swift- bestand, in de methode didFinishLaunchingWithOptions
:
UIApplication.shared.statusBarStyle = .lightContent
of
UIApplication.shared.statusBarStyle = .default
Met de optie .lightContent wordt de kleur van de statusbalk ingesteld op wit, voor de hele app.
Met de optie .default wordt de kleur van de statusBar ingesteld op de oorspronkelijke zwarte kleur voor de hele app.
DOELSTELLING C:
Volg de eerste stap van de SWIFT- sectie. Voeg vervolgens deze code toe aan het AppDelegate.m- bestand:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
of
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];