我得到了从这个方法返回的 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));
关于objective-c - 如何从 UIColor 对象中获取红绿蓝 (RGB) 和 alpha?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1496716/