2012-01-09 9 views
8

Ustawiam tintColor z UIBarButtonItem. Działa tak długo, jak długo kolor jest jasny, jak tylko ustawię go na darkGrayColor nic się nie dzieje, w rzeczywistości zmienia zabarwienie na biały! Ale jeśli zmienię kolor na redColor, to działa ... Co się tutaj dzieje?UIBarButtonItem setTintColor nie działa dla ciemnych kolorów

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

Czy próbowałeś podać niestandardowy kolor (wartości RGB) i sprawdziłeś wyniki? – Till

+0

Dobry pomysł, ale to też nie działa, zaktualizuję pytanie z wynikami – Chris

+1

Ustawienie koloru odcienia nie działa, ale ustawienie nowej alfa zrobiło !! – Chris

Odpowiedz

1

Różnica [UIColor redColor] i [UIColor darkGrayColor] jest to, że pierwsza jest ustawiana za pomocą wartości RGB i drugi ze skali szarości, a UIBarButtonItem jest w jakiś sposób ignorując skali szarości. Można przetestować tę teorię, porównując:

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

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

W pierwszym przypadku jest jak oczekiwano, ale ten ostatni nie jest, to problem jest rzeczywiście w skali szarości. W przeciwnym razie nie mam pojęcia, co powoduje takie zachowanie.

+0

Próbowałem tego i nadal wydawałem się biały, ustawienie alfa na 0,2 przyniosło pożądany efekt, ale oczywiście pozostawiłem pierwotne pytanie bez odpowiedzi! – Chris

+0

@Chris Interesujące. Czy masz na myśli ustawić alfa z 'UIColor' lub' UIBarButtonItem'? – PengOne

+0

Miałem na myśli alfę UIColor, jak na waszym przykładzie! – Chris

Powiązane problemy