2011-09-09 12 views
9

Necesito usar colores personalizados en mi aplicación. He encontrado algunos colores agradables HTML y los convertí a RGB valores luego aplicarlos con:Objetivo-c HTML-> Color RGB no es correcto en UIColor

[UIColor colorWithRed:235 green:242 blue:212 alpha:1] 

El problema es el color que resulta en mi aplicación no es correcta. En algún momento es solo blanco y otras veces está muy lejos. El rojo podría ser amarillo, etc.

¿Alguien ha encontrado esto antes? ¿Estoy convirtiendo los colores incorrectamente o algo así?

Respuesta

28

Basta con dividir todo lo que los valores de color 255:

[UIColor colorWithRed:235/255.0f green:242/255.0f blue:212/255.0f alpha:1] 
+4

Solo quería agregar que el sufijo .0f es muy importante. Usé tu código sin él al principio y el color que obtuve fue muy diferente. Simplemente usando 57/255 (digamos), no lo corta. Entonces, para todos los que usen esta respuesta, no olviden agregar .0f, a diferencia de mí :)) – BBog

5

El rango de valores válidos para los parámetros a +colorWithRed:green:blue:alpha:is 0 to 1. Suponiendo que los valores de RGB tienen el rango de 0 a 255, el ejemplo sería:

[UIColor colorWithRed:0.92f green:0.95f blue:0.83f alpha:1.f]; 
+0

Grandes cosas, gracias. ¿Cómo convierto los números que tengo al formato correcto? – conor

+2

Dividirlos por 255. –

0

Sólo tiene que utilizar este método en .m

-(float)getColorValue:(float)colorVal 
{ 
    return colorVal/255; 
} 

definición declarar en .h

-(float)getColorValue:(float)colorVal 

Ejemplo:

[UIColor colorWithRed:[self getColorValue:227] green:[self getColorValue:227] blue:[self getColorValue:227] alpha:1.0]; 
+0

Qué manera tan larga de hacer una cosa simple – Mutawe

Cuestiones relacionadas