确定颜色是浅还是暗?

时间:2012-12-05 15:42:17

标签: ios colors label

  

可能重复:
  Check if UIColor is dark or bright?

有没有简单的方法来确定UIColor是暗还是亮?我想在动态背景上添加标签,如果背景为暗色则将其文本颜色更改为白色;如果是浅色则将其文本颜色更改为黑色。

2 个答案:

答案 0 :(得分:6)

我没有测试过这个,但它可能适合你...

-(BOOL) isLightColor:(UIColor*)clr {
    CGFloat white = 0;
    [clr getWhite:&white alpha:nil];
    return (white >= 0.5);
}

答案 1 :(得分:1)

计算标签和背景之间的颜色对比度,并从那里决定颜色。通常,这将涉及获取相关颜色的组件。

如果你谷歌“计算颜色对比度”没有引号,你会找到一些链接。你可能找不到任何iOS特定的东西,但你应该能够调整你找到的代码,特别是因为它们通常涉及RGB的功能,这是直截了当的。