Ios 确定颜色是浅还是暗?

Ios 确定颜色是浅还是暗?,ios,colors,label,Ios,Colors,Label,可能重复: 有没有简单的方法来确定颜色是暗的还是亮的?我想将标签放在动态背景上,如果背景为深色,则将其文本颜色更改为白色;如果背景为浅色,则将其文本颜色更改为黑色。我还没有测试过此功能,但它可能适用于您 -(BOOL) isLightColor:(UIColor*)clr { CGFloat white = 0; [clr getWhite:&white alpha:nil]; return (white >= 0.5); } 计算标签和背景之间的颜色对

可能重复:


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

我还没有测试过此功能,但它可能适用于您

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

计算标签和背景之间的颜色对比度,并从中确定颜色。一般来说,这将涉及到获取问题颜色的组成部分


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

重复问题。[[1]:以上代码仅在颜色为灰度时有效,如果为RGB,则返回白色,其值为0。请检查以下代码是否更有效: