matriz de colors del arco iris de iOS

Estoy configurando una matriz que tiene una transición a lo largo de los colors del arcoíris. Ahora mismo he ingresado manualmente los colors en la matriz, pero hay demasiados para escribir manualmente … a partir de ahora solo voy de 0.25 a 0.5 a 0.75 a 1 y así sucesivamente hasta que pase de rojo a verde a azul y de return (vea el código a continuación) ¿Cómo puedo hacer que la matriz genere automáticamente los colors con más de 0.25 -> 0.5 -> 0.75 pero tal vez 0.05 -> 0.10 -> 0.15 -> 0.20 y así sucesivamente … aquí está mi matriz:

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]; 

Mucho más simple, use -[UIColor colorWithHue:saturation:brightness:alpha:] , así:

 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]; } 

Esto le permite variar el tono (o el color) sin cambiar el brillo del color en la pantalla, lo que es muy probable que no se preserve en este momento. También es mucho más fácil escribir, y mucho más claro para un lector posterior.

3 nested para loops y 3 variables r, g, b, y agrega 0.25 cada vez que se produce el bucle.