2011-08-24 42 views

Respuesta

28

Esto es porque el CGFloat valores van de 0.0 to 1.0 no desde 0 to 255, y los valores superiores 1.0 se interpretan como 1.0.

Aquí está la documentación: UIColor

16

a hacer esto:

navigationController.navigationBar.tintColor = [UIColor colorWithRed:117/255.0f green:4/255.0f blue:32/255.0f alpha:1]; 
+0

Lo hice y ahora aparece como negro en lugar de rojo oscuro – aryaxt

+0

Parece que solo ve blanco o negro para todas las opciones ... ¿está seguro de que no tiene un monitor en blanco y negro? :) asegúrese de no anular este color de tinte en otro lugar de su aplicación. – TommyG

+0

No creo que sea el caso. porque cuando uso [UIColor redColor], o cualquier otro color definido funciona bien – aryaxt

6

Tienes que dividir cada valor de 255. Probar:

[UIColor colorWithRed:117/255.0f green:4/255.0f blue:32/255.0f alpha:1] 
+5

esos valores deben ser flotantes y no enteros; de lo contrario, el resultado será un número entero. –

+1

@ JoãoPortela: He editado la respuesta para que los valores permanezcan como flotantes. –

3

Me parece que si usted viene de la web o algo así como Photoshop, es más fácil trabajar con colores hexadecimales. Puede utilizar esta macro para que:

//RGB color macro 
#define UIColorFromRGB(rgbValue) [UIColor \ 
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \ 
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \ 
blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0] 

Y utilizar de esta manera:

self.navigationBar.tintColor = UIColorFromRGB(0xd8dadf); 
0

Ah, esto es divertido. La respuesta real es que .tintColor establece el color para los Elementos de navegación del controlador de navegación (como el botón "Hecho").

+0

Es solo así en iOS reciente, no cuando se hizo la pregunta. – zeroimpl

Cuestiones relacionadas