4

如何检查用户是否在其 Apple TV 上启用了深色外观?

4

3 回答 3

14

使用在 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>
于 2016-09-18T21:31:40.357 回答
1
if traitCollection.userInterfaceStyle == .dark {
}
于 2019-07-04T23:05:41.777 回答
0

我在 Swift 5 中编写了这个扩展:

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

然后你可以在你的 UIViewControllers 中调用它:

if self.isDarkModeEnabled {
    //Do something dark
} else {
    //Do something light
}
于 2019-03-29T16:13:21.833 回答