查看代码
const CGFloat *c = CGColorGetComponents([[UIColor whiteColor] CGColor]);
slider1.value = c[0];
slider2.value = c[1];
slider3.value = c[2];
c [2]变为0.对于whiteColor,所有RGB值都为1.0。为什么它没有为蓝色组件返回正确的值?
任何代码段?从白色获取RGB值?
答案 0 :(得分:8)
尝试CGColorGetColorSpace([[UIColor whiteColor] CGColor])
你会看到它不是RGB。它只有2个组件:灰度和alpha
答案 1 :(得分:1)
使用此代码: CGContextSetFillColorWithColor(ctx,[UIColor whiteColor] .CGColor);
使用颜色和灰度。
答案 2 :(得分:0)
这段代码应该适用于RGB和灰度:
CGFloat *components = (CGFloat *) CGColorGetComponents(<UIColor instance>.CGColor);
if(CGColorGetNumberOfComponents(<UIColor instance>.CGColor) == 2)
{
//assuming it is grayscale - copy the first value
components[2] = components[1] = components[0];
}