有没有办法检查iOS的辅助功能设置中是否启用了“增加对比度”?

a11xaf1n  于 2023-07-01  发布在  iOS
关注(0)|答案(4)|浏览(112)

在iOS 7.0.3上,打开增强对比度模式会移除通常在导航栏中看到的模糊效果(如果您使用Alpha小于1.0的条色调颜色),这会使导航栏看起来比默认设置透明得多。
是否有方法以编程方式检查此设置是否已启用?虽然UIAccessibility有大量其他函数,如UIAccessibilityIsInvertColorsEnabled(),但我找不到任何与此设置相关的具体内容。

nhjlsmyf

nhjlsmyf1#

从iOS 8开始,有一种方法可以检查:

UIKIT_EXTERN BOOL UIAccessibilityDarkerSystemColorsEnabled() NS_AVAILABLE_IOS(8_0);

现代iOS:
UIAccessibility.isDarkerSystemColorsEnabled

9gm1akwq

9gm1akwq2#

显然,没有公共API来检查该选项是否打开。
根据UIKit函数参考,您只能执行以下检查

  • UIAccessibilityPostNotification
  • UIAccessibilityIsVoiceOverRunning
  • UIAccessibilityIsClosedCaptioningEnabled
  • UIAccessibilityRequestGuidedAccessSession
  • UIAccessibilityIsGuidedAccessEnabled
  • UIAccessibilityIsInvertColorsEnabled
  • UIAccessibilityIsMonoAudioEnabled
  • UIAccessibilityZoomFocusChanged
  • UIAccessibilityRegisterGestureConflictWithZoom
  • UIAccessibilityConvertFrameToScreenCoordinates
  • UIAccessibilityConvertPathToScreenCoordinates
krugob8w

krugob8w3#

对于iOS 13及更高版本,我们可以使用accessibilityContrast

文档

使用此特性来确定用户是否请求前景和背景内容之间的高对比度。用户在“设置”的“辅助功能”区域中设置对比度。
Apple doc link

snvhrwxg

snvhrwxg4#

正如Anshad提到的,由于iOS13确实是可能的,下面是代码:

UITraitCollection.current.accessibilityContrast == .high

相关问题