2012-01-09 11 views
8

Estoy configurando el tintColor de UIBarButtonItem. Esto funciona siempre que el color sea brillante, tan pronto como intento configurarlo en darkGrayColor no pasa nada, ¡de hecho cambia el tinte a blanco! Pero si cambio el color a redColor, entonces funciona ... ¿Qué está pasando aquí?UIBarButtonItem setTintColor no funciona para los colores oscuros

UIBarButtonItem *penButton = [_toolBar.items objectAtIndex:3]; 
UIBarButtonItem *crossButton = [_toolBar.items objectAtIndex:4]; 

//This actually sets the tint to white not gray, which is odd? 
[penButton setTintColor:[UIColor darkGrayColor]]; 
[crossButton setTintColor:[UIColor redColor]]; //Red is fine, as is green etc 
+1

¿Ha intentado suministrar un color personalizado (valores RGB) y verificado los resultados? – Till

+0

Buena idea, pero parece que tampoco funciona, actualizaré la pregunta con los resultados – Chris

+1

Establecer el color del tinte no funcionó pero establecer un nuevo alfa sí lo hizo !! – Chris

Respuesta

1

La diferencia entre [UIColor redColor] y [UIColor darkGrayColor] es que el primero se ajusta utilizando los valores de RGB y esta última con una escala de grises, y la UIBarButtonItem es de alguna manera ignorando la escala de grises. Puede probar esta teoría mediante la comparación:

[penButton setTintColor:[UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:1.0]]; 

[penButton setTintColor:[UIColor colorWithWhite:0.5 alpha:1.0]]; 

Si el primero es como se esperaba, pero este último no es, entonces el problema es de hecho con escala de grises. De lo contrario, no tengo idea de qué está causando este comportamiento.

+0

Lo probé y aún salió como blanco, estableciendo el alfa a 0.2 obtuve el efecto que quería pero obviamente dejé la pregunta original sin respuesta. – Chris

+0

@Chris Interesante. ¿Quiere decir que configura el alfa del 'UIColor' o del' UIBarButtonItem'? – PengOne

+0

¡Quise decir el alfa del UIColor según su ejemplo! – Chris

Cuestiones relacionadas