我正在尝试从UIColor对象获取RGB值。
如果我在UIColor对象上执行以下操作
UIColor *top = [UIColor lightGrayColor];
const CGFloat* colorsTop = 0;
colorsTop = CGColorGetComponents(top.CGColor);
排名为:UICachedDeviceRGBColor * 0x7a7d5b50
但是,如果我执行以下操作则会失败。有人可以解释一下原因吗?
UIColor *top = [UIColor colorWithRed:1 green:1 blue:1 alpha:1];
const CGFloat* colorsTop = 0;
colorsTop = CGColorGetComponents(top.CGColor);
Top出现为:UIColor * 0x7a7d5cb0
我在最后一个上遇到错误:EXC_BAD_ACCESS(code = 1,0db7a7d5b9)
答案 0 :(得分:1)
要获取UIColor
的RGB分量,您应该使用此方法......
- (BOOL)getRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue alpha:(CGFloat *)alpha
喜欢这个......
CGFloat red = 0;
CGFloat green = 0;
CGFloat blue = 0;
CGFloat alpha = 0;
[someUIColor getRed:&red green:&green blue:&blue alpha:&alpha];
red
,green
,blue
和alpha
现在将包含该颜色的值。