setStatusBarStyle:animated:已弃用
setStatusBarStyle:animated: deprecated
我目前正在 Xcode 8 beta
上为 iOS 10
.
开发一个应用程序(在 Swift 3 中)
我想要实现的是在 运行 时间更改视图控制器内的状态栏样式,以将主题从白天主题更改为夜间主题。
我发现我过去开发另一个应用程序时使用的方法已被弃用,如 API 参考中的 here 所示。
但是,preferredStatusBarStyle
在这里不起作用,因为我想在单个视图控制器中更改它。
谁能想出其他方法来执行此操作?
提前致谢
编辑:
明确地说,我想做的是在视图控制器已经在屏幕上时更改样式。
您可以创建一个 statusBarStyle 变量,该变量在更改时更新状态栏外观。如果您只希望它影响一个控制器,只需在控制器消失或消失时反转效果即可。
var statusBarStyle: UIStatusBarStyle = .lightContent {
didSet {
setNeedsStatusBarAppearanceUpdate()
}
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return statusBarStyle
}
上述解决方案会在控制器出现之前覆盖之前控制器的状态栏样式。如果你想改变控制器出现时的状态栏样式,试试这个:
var statusBarStyle: UIStatusBarStyle? {
didSet {
setNeedsStatusBarAppearanceUpdate()
}
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return statusBarStyle ?? super.preferredStatusBarStyle
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
statusBarStyle = .lightContent
}
在您的 info.plist 中,添加值为 false 的 UIViewControllerBasedStatusBarAppearance 键。
然后,在您 viewController 切换到夜间主题时:
UIApplication.shared.statusBarStyle = .lightContent
要回黑:
UIApplication.shared.statusBarStyle = .default
我目前正在 Xcode 8 beta
上为 iOS 10
.
我想要实现的是在 运行 时间更改视图控制器内的状态栏样式,以将主题从白天主题更改为夜间主题。 我发现我过去开发另一个应用程序时使用的方法已被弃用,如 API 参考中的 here 所示。
但是,preferredStatusBarStyle
在这里不起作用,因为我想在单个视图控制器中更改它。
谁能想出其他方法来执行此操作?
提前致谢
编辑:
明确地说,我想做的是在视图控制器已经在屏幕上时更改样式。
您可以创建一个 statusBarStyle 变量,该变量在更改时更新状态栏外观。如果您只希望它影响一个控制器,只需在控制器消失或消失时反转效果即可。
var statusBarStyle: UIStatusBarStyle = .lightContent {
didSet {
setNeedsStatusBarAppearanceUpdate()
}
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return statusBarStyle
}
上述解决方案会在控制器出现之前覆盖之前控制器的状态栏样式。如果你想改变控制器出现时的状态栏样式,试试这个:
var statusBarStyle: UIStatusBarStyle? {
didSet {
setNeedsStatusBarAppearanceUpdate()
}
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return statusBarStyle ?? super.preferredStatusBarStyle
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
statusBarStyle = .lightContent
}
在您的 info.plist 中,添加值为 false 的 UIViewControllerBasedStatusBarAppearance 键。
然后,在您 viewController 切换到夜间主题时:
UIApplication.shared.statusBarStyle = .lightContent
要回黑:
UIApplication.shared.statusBarStyle = .default