У меня есть три 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];