比较color1 和 color2 是否一致 (判断两个UIco

2019-07-16  本文已影响0人  coding_Liu

方法一:
CGColorEqualToColor(color1.CGColor,color2.CGColor)

备注:有时候不好用(不好用场景通过转换rgb后,确实有细微偏差;但是通过转换成十六进制却一样),单独测试(同一个类中)没问题

方法二:

    //颜色值个数,rgb和alpha
    NSInteger cpts = CGColorGetNumberOfComponents(color.CGColor);
    const CGFloat *components = CGColorGetComponents(color.CGColor);
    CGFloat r = components[0];//红色
    CGFloat g = components[1];//绿色
    CGFloat b = components[2];//蓝色
    if (cpts == 4) {
        CGFloat a = components[3];//透明度
        return [NSString stringWithFormat:@"#%02lX%02lX%02lX%02lX", lroundf(a * 255), lroundf(r * 255), lroundf(g * 255), lroundf(b * 255)];
    } else {
        return [NSString stringWithFormat:@"#%02lX%02lX%02lX", lroundf(r * 255), lroundf(g * 255), lroundf(b * 255)];
    }
}

备注:方法一中未知不好用场景,可以转化成十六进制,在进行字符串比较(isEqTo)

上一篇下一篇

猜你喜欢

热点阅读