Почему установка tintColor для UISegmenteControl или UIBarButtonItem отключает анимацию нажатия кнопки? - PullRequest
2 голосов
/ 23 февраля 2012

Я помещаю UISegmentedControl и UIBarButtonItem внутри UIToolBar со следующим кодом:

UISegmentedControl *prevNext = [[UISegmentedControl alloc] initWithItems:[[NSArray alloc] initWithObjects:@"Previous", @"Next", nil]];
prevNext.segmentedControlStyle = UISegmentedControlStyleBar;
[prevNext addTarget:self action:@selector(prevNextPressed) forControlEvents:UIControlEventValueChanged];
prevNext.tintColor = [UIColor blackColor];
UIBarButtonItem *prevNextButton = [[UIBarButtonItem alloc] initWithCustomView:prevNext];

UIBarButtonItem *done = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(closeKeyboard)];
done.tintColor = [UIColor blackColor];

С этим кодом UISegmentedControl и UIBarButtonItem являются статически выглядящими элементами управления, которые не изменяют свой внешний вид при касании.

Если я закомментирую строки, которые задают свойство tintColor, то они выглядят не так хорошо, но, по крайней мере, визуально реагируют на прикосновения.

Почему это происходит, и любые идеио том, как я могу это исправить?

1 Ответ

5 голосов
/ 23 февраля 2012

Визуальный эффект при касании кнопки панели или сегментированного элемента управления всегда затемняет ее. Поскольку ваш начальный оттенок черного цвета, кнопка не может стать темнее, поэтому ее внешний вид не меняется. Попробуйте другой цвет, например темно-серый - [UIColor colorWithWhite:0.2 alpha:1], может быть.

...