如何检查是否启用了黑暗外观tvOS

时间:2016-09-18 21:29:12

标签: swift tvos tvos10

如何检查用户是否在Apple TV上启用了黑暗外观?

3 个答案:

答案 0 :(得分:11)

使用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项目进行更新,则需要在UIUserInterfaceStyle中加入info.plist。使用Xcode 8创建的新项目已包含此密钥。

enter image description here

<key>UIUserInterfaceStyle</key>
    <string>Automatic</string>

答案 1 :(得分:1)

我在Swift 5中编写了此扩展程序:

extension UIViewController {
    var isDarkModeEnabled : Bool {
        get {
            return traitCollection.userInterfaceStyle == .dark
        }
    }
}

然后您可以在UIViewControllers中调用它:

if self.isDarkModeEnabled {
    //Do something dark
} else {
    //Do something light
}

答案 2 :(得分:1)

if traitCollection.userInterfaceStyle == .dark {
}