2011-09-28 7 views

risposta

33

Il parametro non sono un valori di 0 a 255, ma un galleggiante tra 0,0 e 1,0:

[UIColor colorWithRed:0.0f/255.0f green:155.0f/255.0f blue:218.0f/255.0f alpha:1.0f]; 
+1

Un design simile risale a Quartz nei primi anni di Mac OS X e l'idea era di fornire uno spazio colore prefettamente indipendente e indipendente dal dispositivo. –

+0

Che differenza fa f in 155.0f – Armand

+2

f specifica che 155.0 deve essere interpretato come float piuttosto che double. – Luke

3

I valori devono essere float (nell'intervallo da 0.0 a 1.0), non ints (nell'intervallo da 0 a 255).

+ (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha 

Prova:

[UIColor colorWithRed:136.0/255.0 green:155.0/255.0 blue:218.0/255.0 alpha:1.0]; 
1

Le params non sono numeri interi, ma galleggianti, quindi probabilmente vuoi dividere tutti i valori float di colore con 255. In questo modo:

[UIColor colorWithRed:136.0/255 green:155.0/255 blue:218.0/255 alpha:1.0]; 

Ecco perché il colore cambia quando si imposta il rosso su 0 anziché su 1, che in questo caso significa 136.

Problemi correlati