首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何告诉iOS 11中的智能反转不反转我的应用程序的颜色,并检测它是否已启用?

如何告诉iOS 11中的智能反转不反转我的应用程序的颜色,并检测它是否已启用?
EN

Stack Overflow用户
提问于 2017-06-10 15:34:39
回答 3查看 10.8K关注 0票数 33

iOS 11有一个名为“智能反转颜色”的新功能,我想在我的应用程序中利用这一点。我已经在我的应用程序中实现了我自己的暗模式,所以当Smart Invert启用时,我将自己进行“颜色反转”过程。我想知道的是:

  • 如何告诉iOS 11该应用程序具有深色界面且不反转颜色,类似于iOS 10+中的iOS Clock应用程序?
  • 如何检测启用了哪种反转颜色,特别是“智能反转”或“经典反转”?

我已经在谷歌、StackOverflow和苹果开发者网站上到处搜索了一段时间,仍然没有找到答案。

提前感谢!

更新:

多亏了@Toma's answer,我成功地阻止了iOS 11在我的应用程序中颠倒视图。现在我有了另一个问题..。

对于检测部分,UIAccessibility.isInvertColorsEnabled (Swift 4.2)似乎只会在智能反相打开时返回true (iOS 11)。至少现在对我来说已经足够了。我现在想知道怎样才能知道Classic Invert何时打开。如果你知道怎么做,请在下面发布更新的答案!谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-06-14 23:51:09

请参见iOS 11 UIView的属性accessibilityIgnoresInvertColors

票数 37
EN

Stack Overflow用户

发布于 2018-04-13 19:37:27

忽略所有UIImageViews的智能反相。在应用程序委派中设置

代码语言:javascript
复制
if #available(iOS 11.0, *) {
   UIImageView.appearance().accessibilityIgnoresInvertColors = true
}
票数 8
EN

Stack Overflow用户

发布于 2019-04-03 08:50:42

Swift 4.2

要检查当前是否启用了智能逆变,您可以使用UIAccessibility.isInvertColorsEnabled。您还可以通过观察UIAccessibility.invertColorsStatusDidChangeNotification来获得更改时的通知

代码语言:javascript
复制
NotificationCenter.default.addObserver(forName: UIAccessibility.invertColorsStatusDidChangeNotification,
                                       object: nil,
                                       queue: OperationQueue.main) {
                                        [weak self] _ in
  
  if UIAccessibility.isInvertColorsEnabled {
    // smart invert is enabled
  } else {
   
  }
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44470786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档