相关疑难解决方法(0)

检查tintColor是否在tintColorDidChange中变暗

在iOS 7上,当色调颜色发生变化时(例如,当显示UIAlertView时),会在其tintColorDidChange方法中通知视图.

我有几个子视图,我想提供一个自定义的禁用状态.(例如,假设我还想暂时调暗自backgroundColor定义UIControl.)

我一直在使用这段代码:

- (void)tintColorDidChange {
    BOOL isInactive = (CGColorSpaceGetModel(CGColorGetColorSpace([self.tintColor CGColor])) == kCGColorSpaceModelMonochrome);
    if (isInactive) {
        // modify subviews to look disabled
    } else {
        // modify subviews to look enabled
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,在我的某个应用程序中的某些视图中,活动色调颜色为深灰色,非活动色调颜色为浅灰色.

在这种情况下,两种颜色都报告为"不活动",因为两种颜色都是单色.

是否有更好的测试来确定当前状态是活动还是变暗?

cocoa-touch uiview ios

4
推荐指数
1
解决办法
2196
查看次数

标签 统计

cocoa-touch ×1

ios ×1

uiview ×1