You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

iOS无障碍功能:如何检测Colour Filters(色彩滤镜)是否开启?

检测iOS色彩滤镜(Colour Filters)状态的可行方法

嘿,这个问题问到点子上了!不管是iOS开发场景下的代码检测,还是普通用户手动验证,都有靠谱的办法来确认色彩滤镜是否开启,具体如下:

1. 开发层面:用官方API检测(Swift/Objective-C)

苹果在UIAccessibility框架里提供了专门的API,这是合规且稳定的检测方式,不会涉及隐私权限问题:

  • 单次检测
    在Swift里可以直接调用以下代码判断状态:

    let isColourFilterActive = UIAccessibility.displayAdjustmentsEnabled
    

    这个属性在iOS 10及以上可用,只要色彩滤镜处于开启状态,就会返回true。如果需要区分是否同时开启了「降低白点值」,可以结合UIAccessibility.isDarkerSystemColorsEnabled来判断,但核心检测色彩滤镜的还是displayAdjustmentsEnabled

  • 监听状态变化
    如果需要实时监听色彩滤镜的开关状态,可以注册通知:

    // 注册通知
    NotificationCenter.default.addObserver(
        self,
        selector: #selector(onDisplayAdjustmentsChanged),
        name: UIAccessibility.displayAdjustmentsDidChangeNotification,
        object: nil
    )
    
    // 状态变化回调
    @objc private func onDisplayAdjustmentsChanged() {
        let currentState = UIAccessibility.displayAdjustmentsEnabled
        // 在这里处理状态变化的逻辑
    }
    

    Objective-C的写法类似,对应的API是UIAccessibilityDisplayAdjustmentsEnabledUIAccessibilityDisplayAdjustmentsDidChangeNotification

2. 普通用户层面:手动验证

如果你只是普通用户想确认自己的设备是否开启了色彩滤镜,按以下步骤操作即可:

  • 打开「设置」
  • 进入「辅助功能」
  • 选择「显示与文字大小」
  • 找到「色彩滤镜」选项,查看开关状态

内容的提问来源于stack exchange,提问作者tzuer

火山引擎 最新活动