objective-c - 如何从 UIColor 对象中获取红绿蓝 (RGB) 和 alpha?

标签 objective-c iphone cocoa-touch rgb uicolor

我得到了从这个方法返回的 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/

相关文章:

ios - 当屏幕锁定时,如何让通过 AirPlay 流式传输的视频不暂停?

iphone - 应用程序崩溃 - Webcore - iOS 5.1.1

iphone - 如何为使用 CGBitmapContextCreate() 创建的绘图 Canvas 设置背景颜色?

Apple 代码中的 iPhone 内存泄漏

objective-c - MKMapView 设置区域 : crashes at edge of world

ios - 每次创建一个新的uiviewcontroller 还是重用一样?

ios - 我在 TouchBegan 更新 CGVector 值时遇到问题

iPhone 应用程序崩溃 - viewDidLoad

iphone - Instruments 是否显示 UIWebView 使用的内存?

iphone - 核心数据 - NSPredicate 过滤对多关系