如何检查是否启用了深色外观 tvOS
How to check if Dark Appearance is enabled tvOS
如何检查用户是否在其 Apple TV 上启用了深色外观?
使用 UIUserInterfaceStyle,首先在 tvOS 10 中可用,我们可以检查用户设置的外观。
例如:
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 项目更新,您需要在 info.plist
中包含 UIUserInterfaceStyle
。使用 Xcode 8 创建的新项目已包含此密钥。
<key>UIUserInterfaceStyle</key>
<string>Automatic</string>
我在 Swift 5:
中写了这个扩展
extension UIViewController {
var isDarkModeEnabled : Bool {
get {
return traitCollection.userInterfaceStyle == .dark
}
}
}
然后您可以在 UIViewControllers 中调用它:
if self.isDarkModeEnabled {
//Do something dark
} else {
//Do something light
}
if traitCollection.userInterfaceStyle == .dark {
}
如何检查用户是否在其 Apple TV 上启用了深色外观?
使用 UIUserInterfaceStyle,首先在 tvOS 10 中可用,我们可以检查用户设置的外观。
例如:
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 项目更新,您需要在 info.plist
中包含 UIUserInterfaceStyle
。使用 Xcode 8 创建的新项目已包含此密钥。
<key>UIUserInterfaceStyle</key>
<string>Automatic</string>
我在 Swift 5:
中写了这个扩展extension UIViewController {
var isDarkModeEnabled : Bool {
get {
return traitCollection.userInterfaceStyle == .dark
}
}
}
然后您可以在 UIViewControllers 中调用它:
if self.isDarkModeEnabled {
//Do something dark
} else {
//Do something light
}
if traitCollection.userInterfaceStyle == .dark {
}