我正在从此方法返回UIColor:
- (UIColor *)getUserSelectedColor {
return [UIColor colorWithRed:redSlider.value green:greenSlider.value blue:blueSlider.value alpha:1.0];
}
并得到这样的颜色:
UIColor *selectedColor = [(ColorPickerView *)alertView getUserSelectedColor];
现在,我想从selectedColor中获取红色,绿色,蓝色,以便使用这些值。我想要0到1之间的值。
最佳答案
访问SelectedColor.CGColor
时崩溃的原因可能是您没有保留getColor
的结果,也许您需要的是:
SelectedColor = [[(ColorPickerView *)alertView getColor] retain];
您只能从使用RGB颜色空间的
UIColor
中获取RGB颜色分量,因为您使用的colorWithRed:green:blue:alpha:
没问题,但是如果您的代码发生更改,可以对此进行更改。有了这种想法,就可以轻松获得颜色成分:
const CGFloat* components = CGColorGetComponents(SelectedColor.CGColor);
NSLog(@"Red: %f", components[0]);
NSLog(@"Green: %f", components[1]);
NSLog(@"Blue: %f", components[2]);
NSLog(@"Alpha: %f", CGColorGetAlpha(SelectedColor.CGColor));