как динамически перекрасить CGGradientRef - PullRequest
0 голосов
/ 22 мая 2010

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

1 Ответ

0 голосов
/ 22 мая 2010

CGGradientRefs не может быть динамически окрашен. Для динамического цвета градиента используйте CGShadingRef.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...