可能重复:
检查 UIColor 是暗还是亮?
有没有简单的方法来确定 UIColor 是暗还是亮?我想在动态背景上放置一个标签,如果背景很暗,则将其文本颜色更改为白色,如果背景为浅色,则将其文本颜色更改为黑色。
可能重复:
检查 UIColor 是暗还是亮?
有没有简单的方法来确定 UIColor 是暗还是亮?我想在动态背景上放置一个标签,如果背景很暗,则将其文本颜色更改为白色,如果背景为浅色,则将其文本颜色更改为黑色。
我没有测试过这个,但它可能对你有用......
-(BOOL) isLightColor:(UIColor*)clr {
CGFloat white = 0;
[clr getWhite:&white alpha:nil];
return (white >= 0.5);
}
计算标签和背景之间的颜色对比度,然后从那里决定颜色。通常,这将涉及获取相关颜色的成分。
如果您在没有引号的情况下搜索“计算颜色对比度”,您会找到一些链接。您可能找不到任何特定于 iOS 的内容,但您应该能够调整您找到的代码,特别是因为它们通常会涉及 RGB 的功能,这是直截了当的。