Objective-c: Cómo crear diferentes tonos de un color

¿Hay algún algorithm que cree diferentes sombras para un valor Hex o RGB dado? He intentado boost y disminuir alfa pero no se ve bien con colors claros (por ejemplo: color blanco).

introduzca la descripción de la imagen aquí

La mejor manera de hacerlo es usar el espacio de color HSB.

Es como hice la sección de la mano izquierda del keyboard en mi última aplicación …

introduzca la descripción de la imagen aquí

El "tono" del color es el valor H y el valor S A continuación, puede cambiar el brillo de este ajustando el valor B

Entonces, si tuvieras un color como …

HSB – 0.5, 0.9, 0.9 – azul muy claro

Puede crear sombras más oscuras cambiando el valor B …

HSB – 0.5, 0.9, 0.3 – azul oscuro del mismo color.

Cree colors HSB como …

 UIColor *color = [UIColor colorWithHue:0.5 saturation:0.9 brightness:0.4 alpha:1.0]; 

En mi aplicación tenía un "brillo más claro" y un "brillo más oscuro".

La resolví el cambio de brillo para cada sección dividiendo la diferencia entre ellas por el número de secciones.

Usando un bucle for , pude crear fácilmente los diferentes colors de sección.