0

可能重复:
检查 UIColor 是暗还是亮?

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

4

2 回答 2

6

我没有测试过这个,但它可能对你有用......

-(BOOL) isLightColor:(UIColor*)clr {
    CGFloat white = 0;
    [clr getWhite:&white alpha:nil];
    return (white >= 0.5);
}
于 2012-12-05T15:45:48.090 回答
1

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

如果您在没有引号的情况下搜索“计算颜色对比度”,您会找到一些链接。您可能找不到任何特定于 iOS 的内容,但您应该能够调整您找到的代码,特别是因为它们通常会涉及 RGB 的功能,这是直截了当的。

于 2012-12-05T15:46:33.147 回答