在我的代码中,我目前有一个变量dayTime
,如果外面有光,则该变量为 true;如果是晚上,则该变量为 false。因此,我的代码在白天采用白色方案,在夜间采用深色方案。如果 dayTime
为 true,我需要状态栏为黑色;如果 dayTime
为 false,则状态栏为白色。目前,我设置 override var PreferredStatusBarStyle()
以返回 .lightContent
但我不知道如何调用 setNeedsStatusBarAppearanceUpdate()
来更改状态条变黑。
编辑:从 View Controller 添加代码
class BasicViewController: UIViewController {
var dayTime = true
override func viewDidLoad() {
super.viewDidLoad()
// gets current time to see if it is time to toggle night mode
let date = NSDate()
let calendar = Calendar.current
let components = calendar.dateComponents([.hour, .minute], from: date as Date)
let hour = components.hour
if(dayTime) {
setNeedsStatusBarAppearanceUpdate()
}
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
最佳答案
这就是我让它工作的方法。虽然我让它执行异步任务,所以我可以在任务完成后看到它的变化。
class ViewController: UIViewController {
var dayTime = true
override func viewDidLoad() {
super.viewDidLoad()
dayTime = false
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
if daytime {
return .default
}
return .lightContent
}
}
关于ios - 将状态栏从浅色更改为深色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43969875/