Check if UIColor is dark or bright?

前端 未结 14 2019
醉酒成梦
醉酒成梦 2020-11-29 17:20

I need to determine whether a selected UIColor (picked by the user) is dark or bright, so I can change the color of a line of text that sits on top of that color, for better

14条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-11-29 17:47

    If you prefer the block version:

    BOOL (^isDark)(UIColor *) = ^(UIColor *color){
        const CGFloat *component = CGColorGetComponents(color.CGColor);
        CGFloat brightness = ((component[0] * 299) + (component[1] * 587) + (component[2] * 114)) / 1000;
    
        if (brightness < 0.75)
            return  YES;
        return NO;
    };
    

提交回复
热议问题