库存UIColor和自定义UIColor之间的区别

时间:2016-06-23 10:59:59

标签: objective-c xcode uicolor

我正在尝试从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)

1 个答案:

答案 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];

redgreenbluealpha现在将包含该颜色的值。