在iOS 7.0.3上,打开增强对比度模式会移除通常在导航栏中看到的模糊效果(如果您使用Alpha小于1.0的条色调颜色),这会使导航栏看起来比默认设置透明得多。是否有方法以编程方式检查此设置是否已启用?虽然UIAccessibility有大量其他函数,如UIAccessibilityIsInvertColorsEnabled(),但我找不到任何与此设置相关的具体内容。
nhjlsmyf1#
从iOS 8开始,有一种方法可以检查:
UIKIT_EXTERN BOOL UIAccessibilityDarkerSystemColorsEnabled() NS_AVAILABLE_IOS(8_0);
现代iOS:UIAccessibility.isDarkerSystemColorsEnabled
9gm1akwq2#
显然,没有公共API来检查该选项是否打开。根据UIKit函数参考,您只能执行以下检查
UIAccessibilityPostNotification
UIAccessibilityIsVoiceOverRunning
UIAccessibilityIsClosedCaptioningEnabled
UIAccessibilityRequestGuidedAccessSession
UIAccessibilityIsGuidedAccessEnabled
UIAccessibilityIsInvertColorsEnabled
UIAccessibilityIsMonoAudioEnabled
UIAccessibilityZoomFocusChanged
UIAccessibilityRegisterGestureConflictWithZoom
UIAccessibilityConvertFrameToScreenCoordinates
UIAccessibilityConvertPathToScreenCoordinates
krugob8w3#
对于iOS 13及更高版本,我们可以使用accessibilityContrast
accessibilityContrast
文档
使用此特性来确定用户是否请求前景和背景内容之间的高对比度。用户在“设置”的“辅助功能”区域中设置对比度。Apple doc link
snvhrwxg4#
正如Anshad提到的,由于iOS13确实是可能的,下面是代码:
UITraitCollection.current.accessibilityContrast == .high
4条答案
按热度按时间nhjlsmyf1#
从iOS 8开始,有一种方法可以检查:
现代iOS:
UIAccessibility.isDarkerSystemColorsEnabled
9gm1akwq2#
显然,没有公共API来检查该选项是否打开。
根据UIKit函数参考,您只能执行以下检查
UIAccessibilityPostNotification
UIAccessibilityIsVoiceOverRunning
UIAccessibilityIsClosedCaptioningEnabled
UIAccessibilityRequestGuidedAccessSession
UIAccessibilityIsGuidedAccessEnabled
UIAccessibilityIsInvertColorsEnabled
UIAccessibilityIsMonoAudioEnabled
UIAccessibilityZoomFocusChanged
UIAccessibilityRegisterGestureConflictWithZoom
UIAccessibilityConvertFrameToScreenCoordinates
UIAccessibilityConvertPathToScreenCoordinates
krugob8w3#
对于iOS 13及更高版本,我们可以使用
accessibilityContrast
文档
使用此特性来确定用户是否请求前景和背景内容之间的高对比度。用户在“设置”的“辅助功能”区域中设置对比度。
Apple doc link
snvhrwxg4#
正如Anshad提到的,由于iOS13确实是可能的,下面是代码: