2012-01-09 10 views
8

Sto impostando il tintColor di un UIBarButtonItem. Questo funziona fintanto che il colore è un colore brillante, non appena provo a impostarlo su darkGrayColor non accade nulla, infatti cambia la tonalità in bianco! Ma se cambio il colore in redColor allora funziona ... Che sta succedendo qui?UIBarButtonItem setTintColor non funziona per i colori scuri

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

Hai provato a fornire un colore personalizzato (valori RGB) e hai controllato i risultati? – Till

+0

Buona idea ma non sembra funzionare, aggiornerò la domanda con i risultati – Chris

+1

L'impostazione del colore della tinta non ha funzionato, ma l'impostazione di una nuova alpha è stata !! – Chris

risposta

1

La differenza tra [UIColor redColor] e [UIColor darkGrayColor] è che il primo è impostato utilizzando valori RGB ed i secondi con una scala di grigi, e il UIBarButtonItem è in qualche modo ignorando la scala di grigi. È possibile verificare questa teoria confrontando:

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

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

Se il primo è come previsto, ma quest'ultimo non è, allora il problema è davvero con scala di grigi. Altrimenti non ho idea di cosa stia causando questo comportamento.

+0

L'ho provato e risultava ancora bianco, impostando l'alpha su 0.2 ha ottenuto l'effetto desiderato ma ovviamente non ha risposto alla domanda originale! – Chris

+0

@Chris Interessante. Vuoi dire che imposti l'alfa di 'UIColor' o di' UIBarButtonItem'? – PengOne

+0

Intendevo l'alfa di UIColor come da esempio! – Chris

Problemi correlati