如何从组件创建CGColorRef

时间:2016-01-28 14:34:01

标签: ios objective-c

我有一个代码行

CAShapeLayer *shapeLayer = [CAShapeLayer layer];
shapeLayer.strokeColor = [UIColor colorWithRed:r green:g blue:b alpha:1.f].CGColor;

我可以使用UIColor重写它吗?我的意思是我可以从a,r,g,b组件创建CGColorRef并将其传递给shapeLayer.strokeColor,考虑使用ARC。

2 个答案:

答案 0 :(得分:3)

如果您想避免内存泄漏,请释放CGColorSpaceRef

CAShapeLayer *shapeLayer = [CAShapeLayer layer];
CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
CGColorRef aColor = CGColorCreate( colorspace, components ); 
shapeLayer.strokeColor = aColor;
CGColorRelease( aColor );
CGColorSpaceRelease(colorspace);

答案 1 :(得分:0)

是的,你可以这样做。试试下面的

CGColorCreate(CGColorSpaceCreateDeviceRGB(), [1.0, 0.5, 0.5, 1.0]) //array values are in order- red, green, blue, alpha

参考https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CGColor/#//apple_ref/c/func/CGColorCreate