Пока вы сохраняете указатель на слой градиента, вы сможете изменить порядок цвета градиента, предоставив инвертированный набор местоположений:
NSArray *newLocations = [[NSArray alloc] initWithObjects: [NSNumber numberWithFloat:(1.0 - [LOC_0 floatValue])], [NSNumber numberWithFloat:(1.0 - [LOC_5 floatValue])], [NSNumber numberWithFloat:(1.0 - [LOC_51 floatValue])], [NSNumber numberWithFloat:(1.0 - [LOC_1 floatValue])], nil];
[gradient setLocations:newLocations];
[newLocations release];
[gradient setNeedsDisplay];
(это было бы чище, если бы у вас были значения с плавающей запятой для LOC_0 и т. Д.)
Я не уверен, требуется ли -setNeedsDisplay
, но часто для изменений содержимого в слое.
Тем не менее, решение Вани о применении вращательного преобразования может быть самым быстрым способом достижения этого эффекта.
В качестве комментария, надеюсь, у вас есть код [locations release]
и [colorNext release]
где-то позже в вашем коде, в противном случае вы будете вытекать из локаций и цветовых массивов.