如何检查用户是否在Apple TV上启用了Dark Appearance?
使用首先在tvOS 10中提供的UIUserInterfaceStyle,我们可以检查用户设置的外观。
例如:
func checkInterfaceStyle() {
guard(traitCollection.responds(to: #selector(getter: UITraitCollection.userInterfaceStyle)))
else { return }
let style = traitCollection.userInterfaceStyle
switch style {
case .light:
print("light")
case .dark:
print("dark")
case .unspecified:
print("unspecified")
}
}
此外,如果您从Xcode 7 / tvOS 9.0项目更新,则需要在UIUserInterfaceStyle
中包含info.plist
。使用Xcode 8创建的新项目已包含此密钥。
<key>UIUserInterfaceStyle</key>
<string>Automatic</string>
if traitCollection.userInterfaceStyle == .dark {
}
我在Swift 5中写了这个扩展:
extension UIViewController {
var isDarkModeEnabled : Bool {
get {
return traitCollection.userInterfaceStyle == .dark
}
}
}
然后,您可以在UIViewControllers中调用它:
if self.isDarkModeEnabled {
//Do something dark
} else {
//Do something light
}