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

问题描述 投票:2回答:2

如何检查用户是否在Apple TV上启用了Dark Appearance?

swift tvos tvos10
2个回答
13
投票

使用首先在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创建的新项目已包含此密钥。

enter image description here

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

1
投票
if traitCollection.userInterfaceStyle == .dark {
}

0
投票

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

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

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

if self.isDarkModeEnabled {
    //Do something dark
} else {
    //Do something light
}
© www.soinside.com 2019 - 2024. All rights reserved.