在iOS 8中使用SWIFT更改特定视图控件的状态栏颜色

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (30)
override func preferredStatusBarStyle() -> UIStatusBarStyle {
 return UIStatusBarStyle.LightContent;
}

在任何ViewController中使用上述代码将特定视图控制器的StatusBar颜色设置为白色有什么建议吗?使用UIApplication.sharedApplication方法,整个应用程序的Info.plist中所需的更改后颜色会发生变化。

// Change the colour of status bar from black to white
UIApplication.sharedApplication().statusBarStyle = .LightContent

如何才能对某些必需的状态栏颜色进行更改特定视图控制器?

提问于
用户回答回答于

在阅读了所有建议并尝试了一些东西之后,我可以使用以下步骤使其对特定的视图控制器有效:

第一步:

打开Inform.plist,插入一个名为“基于视图控制器的状态栏外观“到

第二步(只是一个解释,没有必要实施):

通常,我们在应用程序中放置以下代码(_--完成了AppDelegate的方法,

SWIFT 2

UIApplication.sharedApplication().statusBarStyle = .LightContent

SWIFT 3

UIApplication.shared.statusBarStyle = .lightContent

但那影响大statusBarStyle所有的视图控制器。

因此,如何使这个操作对特定的ViewControlers有效--最后一步:

打开想要更改statusBarStyle并将以下代码放入viewWillAppear()

SWIFT 2

UIApplication.sharedApplication().statusBarStyle = .LightContent

SWIFT 3

UIApplication.shared.statusBarStyle = .lightContent

同时,实现viewWillDisappear()方法,并放置以下代码行,

SWIFT 2

override func viewWillDisappear(animated: Bool) {
    super.viewWillDisappear(animated)
    UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default

}

SWIFT 3

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    UIApplication.shared.statusBarStyle = UIStatusBarStyle.default
}

此步骤将首先更改statusBarStyle,然后将其更改为default当特定的视图控制器消失时。未实现viewWillDisappear()将更改statusBarStyle的新定义值。UIStatusBarStyle.LightContent

用户回答回答于

SWIFT 3SWIFT 3.1

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    UIApplication.shared.statusBarStyle = .lightContent
}
override var preferredStatusBarStyle : UIStatusBarStyle {
    return .lightContent
}

扫码关注云+社区