我正在从此方法返回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));

10-08 06:00