我有一个代码行
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。
答案 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