iOS цвета радуги - PullRequest
       3

iOS цвета радуги

10 голосов
/ 11 марта 2012

Я настраиваю массив, у которого есть переход по цветам радуги.Прямо сейчас я только что вручную ввел цвета в массиве, но их слишком много, чтобы набирать их вручную ... сейчас я просто перехожу с 0,25 до 0,5 до 0,75 до 1 и так далее, пока не перейду с красного на зеленый и на синийи назад.(см. код ниже), как я могу сделать так, чтобы массив автоматически генерировал цвета с более чем 0,25 -> 0,5 -> 0,75, но может быть 0,05 -> 0,10 -> 0,15 -> 0,20 и так далее, ...вот мой массив:

rainbowColors = [[NSArray alloc] initWithObjects:
                     [UIColor colorWithRed:1 green:0 blue:0 alpha:1],
                     [UIColor colorWithRed:1 green:0.25 blue:0 alpha:1],
                     [UIColor colorWithRed:1 green:0.5 blue:0 alpha:1],
                     [UIColor colorWithRed:1 green:0.75 blue:0 alpha:1],
                     [UIColor colorWithRed:1 green:1 blue:0 alpha:1],
                     [UIColor colorWithRed:0.75 green:1 blue:0 alpha:1],
                     [UIColor colorWithRed:0.5 green:1 blue:0 alpha:1],
                     [UIColor colorWithRed:0.25 green:1 blue:0 alpha:1],
                     [UIColor colorWithRed:0 green:1 blue:0 alpha:1],
                     [UIColor colorWithRed:0 green:1 blue:0.25 alpha:1],
                     [UIColor colorWithRed:0 green:1 blue:0.5 alpha:1],
                     [UIColor colorWithRed:0 green:1 blue:0.75 alpha:1],
                     [UIColor colorWithRed:0 green:1 blue:1 alpha:1],
                     [UIColor colorWithRed:0 green:0.75 blue:1 alpha:1],
                     [UIColor colorWithRed:0 green:0.5 blue:1 alpha:1],
                     [UIColor colorWithRed:0 green:0.25 blue:1 alpha:1],
                     [UIColor colorWithRed:0 green:0 blue:1 alpha:1],
                     [UIColor colorWithRed:0.25 green:0 blue:1 alpha:1],
                     [UIColor colorWithRed:0.5 green:0 blue:1 alpha:1],
                     [UIColor colorWithRed:0.75 green:0 blue:1 alpha:1],
                     [UIColor colorWithRed:1 green:0 blue:1 alpha:1],
                     [UIColor colorWithRed:1 green:0 blue:0.75 alpha:1],
                     [UIColor colorWithRed:1 green:0 blue:0.5 alpha:1],
                     [UIColor colorWithRed:1 green:0 blue:0.25 alpha:1],nil];

Ответы [ 2 ]

41 голосов
/ 11 марта 2012

Намного проще, используйте -[UIColor colorWithHue:saturation:brightness:alpha:], вот так:

NSMutableArray *colors = [NSMutableArray array];

float INCREMENT = 0.05;
for (float hue = 0.0; hue < 1.0; hue += INCREMENT) {
    UIColor *color = [UIColor colorWithHue:hue
                                saturation:1.0
                                brightness:1.0
                                     alpha:1.0];
    [colors addObject:color];
}

Это позволяет вам изменять оттенок (или цвет), не меняя яркость цвета на экране, который вы, скорее всего, не сохраняете прямо сейчас. Это также намного проще в написании и намного понятнее для более позднего читателя.

1 голос
/ 11 марта 2012

3 вложено для циклов и 3 переменных r, g, b и добавляет 0,25 каждый раз, когда происходит цикл.

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