我希望用户按下按钮并强制更改应用程序内的暗/亮模式, 代码有效,但是需要按两次按钮才能使其正常工作, 很奇怪...谁能看一看?谢谢!
func darkOrLight() {
let window = UIApplication.shared.keyWindow
if #available(iOS 13.0, *) {
if window?.overrideUserInterfaceStyle == .dark {
window?.overrideUserInterfaceStyle = .light
} else {
window?.overrideUserInterfaceStyle = .dark
}
}
}
答案 0 :(得分:0)
问题解决了, 不要使用overrideUserInterFaceStyle来检查当前的主题模式,
if #available(iOS 13.0, *) {
if UITraitCollection.current.userInterfaceStyle == .dark {
window?.overrideUserInterfaceStyle = .light
}
else {
window?.overrideUserInterfaceStyle = .dark
}
}
答案 1 :(得分:0)
func darkOrlightMode(){
if #available(iOS 13.0, *) {
if UIApplication.shared.keyWindow!.overrideUserInterfaceStyle == .dark {
UIApplication.shared.keyWindow!.overrideUserInterfaceStyle = .light
}
else {
UIApplication.shared.keyWindow!.overrideUserInterfaceStyle = .dark
}
}
}
Blockquote
答案 2 :(得分:0)
此代码假定仅有的两个值是 dark
和 light
。但初始 UIUserInterfaceStyle
值为 unspecified
,在这种情况下,它使用当前系统设置。
与其在您的应用中设置“深色”与“浅色”,不如考虑给它们三个选择:“深色”、“浅色”和“系统默认”。