【发布时间】:2017-02-23 11:29:27
【问题描述】:
首先,我在didFinishLaunchingWithOptions 中尝试了这个link。它总是在我的苹果电视模拟器中返回 unspecified。是否有其他解决方案可以检查 Apple tv 设置中设置了哪种外观样式?
我想将我的 tvOS 应用的主题更改为深色或浅色外观风格。
【问题讨论】:
首先,我在didFinishLaunchingWithOptions 中尝试了这个link。它总是在我的苹果电视模拟器中返回 unspecified。是否有其他解决方案可以检查 Apple tv 设置中设置了哪种外观样式?
我想将我的 tvOS 应用的主题更改为深色或浅色外观风格。
【问题讨论】:
您需要检查traitCollectionDidChange 中的当前样式并在那里更新 UI。
来自 Apple 文档
根据您应用的需要,在视图控制器和视图中实现此方法,以响应此类更改。
示例用法
class DetailsHeaderCell: UICollectionViewCell {
@IBOutlet private(set) var title: UILabel!
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
super.traitCollectionDidChange(previousTraitCollection)
title.layer.borderColor =
traitCollection.userInterfaceStyle == .dark ?
UIColor.white.cgColor : UIColor.black.cgColor
}
}
【讨论】:
traitCollectionDidChange 之类的声音只有在用户在使用应用程序时更改外观时才会被调用。可以通过UIUserInterfaceStyle查看外观风格:stackoverflow.com/a/39562883/2108547