You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS平台能否获取Color Filter的当前状态?需判断设备灰度/正常模式

iOS平台获取颜色滤镜(灰度模式)状态的方法

可以,iOS平台支持获取系统颜色滤镜的当前状态,包括判断设备是否处于灰度显示模式。

核心实现方式

  • 直接判断当前灰度模式状态
    iOS 13及以上系统提供了UIAccessibility框架的isGrayscaleEnabled属性,可直接获取当前是否开启灰度模式:

    import UIKit
    
    let isGrayscaleActive = UIAccessibility.isGrayscaleEnabled
    // 返回true表示设备处于灰度模式,false为正常显示模式
    
  • 监听灰度模式状态变化
    如果需要实时监控模式切换,可以注册UIAccessibility.grayscaleStatusDidChangeNotification通知:

    // 在合适的时机(如ViewController的viewDidLoad)注册通知
    NotificationCenter.default.addObserver(forName: UIAccessibility.grayscaleStatusDidChangeNotification,
                                           object: nil,
                                           queue: .main) { _ in
        let currentStatus = UIAccessibility.isGrayscaleEnabled
        // 在这里处理状态变更后的业务逻辑
    }
    
    // 记得在合适的时机(如ViewController的deinit)移除观察者
    deinit {
        NotificationCenter.default.removeObserver(self)
    }
    

补充说明

如果需要判断其他系统颜色滤镜(如深色增强滤镜),可以使用UIAccessibility.isDarkerSystemColorsEnabled属性,但针对灰度模式,isGrayscaleEnabled是最精准的专用属性。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 16:55:45