iOS 11有一个名为“智能反转颜色”的新功能,我想在我的应用程序中利用它。我已经在我的应用程序中实现了自己的黑暗模式,因此当启用Smart Invert时,我将自己执行“颜色反转”过程。我想知道的是:
我已经在谷歌,StackOverflow和Apple开发者网站的各个地方搜索了一段时间,仍然无法找到答案。
提前致谢!
更新:
感谢@Toma's answer,我成功地阻止了iOS 11在我的应用中反转视图。现在我有另一个问题......
对于检测部分,如果Smart Invert打开(iOS 11),UIAccessibility.isInvertColorsEnabled
(Swift 4.2)似乎只返回true
。至少对我来说这已经足够了。我现在想知道如何找出Classic Invert的开启时间。如果您知道如何操作,请在下面发布更新的答案!谢谢!
请参阅iOS 11 UIView
的财产accessibilityIgnoresInvertColors。
忽略所有UIImageViews的智能反转。在app delegate中设置
if #available(iOS 11.0, *) {
UIImageView.appearance().accessibilityIgnoresInvertColors = true
}
要检查当前是否启用了智能反转,您可以使用UIAccessibility.isInvertColorsEnabled
。您还可以通过观察UIAccessibility.invertColorsStatusDidChangeNotification
获得更改通知:
NotificationCenter.default.addObserver(forName: UIAccessibility.invertColorsStatusDidChangeNotification,
object: nil,
queue: OperationQueue.main) {
[weak self] _ in
if UIAccessibility.isInvertColorsEnabled {
// smart invert is enabled
} else {
}
}