在 iOS 7.0.3 上,如果您使用 alpha 小于 1.0 的条形色调颜色,打开增强对比度模式会消除您通常在导航栏中看到的模糊效果,这会使导航栏看起来比它更透明是默认设置。
有没有办法以编程方式检查是否启用了此设置?虽然 UIAccessibility 有很多其他功能,例如 UIAccessibilityIsInvertColorsEnabled(),但我找不到与此设置相关的任何内容。
在 iOS 7.0.3 上,如果您使用 alpha 小于 1.0 的条形色调颜色,打开增强对比度模式会消除您通常在导航栏中看到的模糊效果,这会使导航栏看起来比它更透明是默认设置。
有没有办法以编程方式检查是否启用了此设置?虽然 UIAccessibility 有很多其他功能,例如 UIAccessibilityIsInvertColorsEnabled(),但我找不到与此设置相关的任何内容。
从 iOS 8 开始,有一种方法可以检查:
UIKIT_EXTERN BOOL UIAccessibilityDarkerSystemColorsEnabled() NS_AVAILABLE_IOS(8_0);
从现代 iOS 开始:
UIAccessibility.isDarkerSystemColorsEnabled
显然没有用于检查该选项是否打开的公共 API。
根据UIKit Function Reference,您可以执行的唯一检查如下
UIAccessibilityPostNotification
UIAccessibilityIsVoiceOverRunning
UIAccessibilityIsClosedCaptioningEnabled
UIAccessibilityRequestGuidedAccessSession
UIAccessibilityIsGuidedAccessEnabled
UIAccessibilityIsInvertColorsEnabled
UIAccessibilityIsMonoAudioEnabled
UIAccessibilityZoomFocusChanged
UIAccessibilityRegisterGestureConflictWithZoom
UIAccessibilityConvertFrameToScreenCoordinates
UIAccessibilityConvertPathToScreenCoordinates
对于 iOS 13 及更高版本,我们可以使用accessibilityContrast
文档
使用此特征来确定用户是否请求在前景和背景内容之间进行高对比度。用户在“设置”的“辅助功能”区域中设置对比度级别。