如何在互联网可达性上使用带有swift的ios更改状态栏颜色?

Fat*_*han 12 statusbar ios swift

我想更改设备状态栏的颜色如果连接互联网而不是状态栏颜色应该变为黑色,如果没有连接互联网,颜色或状态栏应该变为红色,这样它表明互联网正常工作或不工作期间使用SWIFT使用应用程序...帮助我

Nik*_*wal 36

在您Info.plist需要将"查看基于控制器的状态栏外观"设置为布尔值.

如果将其设置为,YES则应覆盖preferredStatusBarStyle每个视图控制器中的功能.

如果将其设置为,NO则可以AppDelegate使用以下方式设置样式:

UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)
Run Code Online (Sandbox Code Playgroud)

  • 你不能把它变成橙色或粉红色,除非你将你的iPhone蘸上橙色或粉红色的油漆:D (5认同)

A.G*_*A.G 29

override func viewWillAppear(animated: Bool) {
    self.navigationController?.navigationBarHidden =  true

    //Status bar style and visibility
    UIApplication.sharedApplication().statusBarHidden = false
    UIApplication.sharedApplication().statusBarStyle = .LightContent

    //Change status bar color
    let statusBar: UIView = UIApplication.sharedApplication().valueForKey("statusBar") as! UIView
    if statusBar.respondsToSelector("setBackgroundColor:") {
        statusBar.backgroundColor = UIColor.redColor()
    }

}
Run Code Online (Sandbox Code Playgroud)


Cod*_*ody 5

在Swift和iOS9中测试过

如果您使用导航控制器,请将其放在viewcontroller类中:

override func viewDidLoad(){
    ...
    self.navigationController?.navigationBar.barStyle = .Black
}
Run Code Online (Sandbox Code Playgroud)

否则,覆盖preferredStatusBarStyle()你的UIViewController:

override func preferredStatusBarStyle() -> UIStatusBarStyle {
    return .LightContent
}
Run Code Online (Sandbox Code Playgroud)

你可以在这里找到更多信息