Изображение кнопки для UIControlStateSelected не работает после настройки UIBarButtonItem через UIAppearance

Я настроил UIBarButtonItem в своем AppDelegate.m с помощью UIAppearance, и все кнопки панели показывают правильные изображения в обычном и выбранном состояниях.

Я хочу, чтобы кнопки «Готово» и «Сохранить» использовали другое изображение (чтобы они выглядели синими, а не серыми), поэтому я использую -setBackgroundImage: forState: barMetrics, чтобы установить два разных изображения для UIControlStateNormal и UIControlStateSelected в -viewDidLoad.

Изображение для UIControlStateNormal работает нормально, но UIControlStateSelected не отображается, вместо этого показывает исходное изображение, которое я использовал для выбранных состояний в AppDelegate.m. Если я закомментирую исходное изображение, новое (синее) будет отображаться правильно.

Как правильно установить разные фоновые изображения для определенных кнопок?


person James    schedule 26.09.2012    source источник


Ответы (1)


Я считаю, что UIControlStateHighlighted это то, что вы ищете.

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

person brynbodayle    schedule 26.09.2012
comment
Спасибо! Я попробовал UIControlStateSelected, и он работал для простых кнопок панели стилей, которые я настроил в AppDelegate.m, поэтому я подумал, что это правильный выбор. Спасибо за прояснение. - person James; 26.09.2012
comment
Кстати, вы знаете, есть ли способ установить все UIBarButtonItemStyleDone с пользовательским изображением? Я пытался задать этот вопрос, но не получил ответа: stackoverflow.com/questions/12583574/ - person James; 26.09.2012