UIBarButtonItem setTintColor не работает для темных цветов - PullRequest
8 голосов
/ 10 января 2012

Я устанавливаю tintColor из UIBarButtonItem.Это работает до тех пор, пока цвет является ярким, и как только я пытаюсь установить его на darkGrayColor, ничего не происходит, фактически он меняет оттенок на белый!Но если я изменю цвет на redColor, тогда это сработает ... Что здесь происходит?

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 Ответ

1 голос
/ 10 января 2012

Разница между [UIColor redColor] и [UIColor darkGrayColor] заключается в том, что первый устанавливается с использованием значений RGB, а второй - в градациях серого, а UIBarButtonItem каким-то образом игнорирует шкалу серого. Вы можете проверить эту теорию, сравнив:

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

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

Если первое соответствует ожиданиям, а второе - нет, тогда проблема действительно в оттенках серого. В противном случае я понятия не имею, что вызывает такое поведение.

...