0
我有三個CGGradientRef,我需要能夠動態重新着色。當我初次獲得預期結果時初始化CGGradientRef,但每次嘗試更改顏色時都不會發生任何事情。爲什麼?如何動態重新着色CGGradientRef
梯度是一個實例變量插件的CALayer的子類:
@interface GradientLayer : CALayer
{
CGGradientRef gradient;
//other stuff
}
@end
代碼:
if (gradient != NULL)
{
CGGradientRelease(gradient);
gradient = NULL;
}
RGBA color[360];
//set up array
CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
gradient = CGGradientCreateWithColorComponents
(
rgb,
color,
NULL,
sizeof (color)/sizeof (color[0])
);
CGColorSpaceRelease(rgb);
[self setNeedsDisplay];