В IB я могу установить идентификатор UIBarButtonItem для 'игрения', который добавляет изображение кнопки воспроизведения (указывающий направо треугольник).
Существует ли способ изменить это изображение программно? Я хочу изменить его для 'приостанавливаний', когда кнопка воспроизведения нажимается.
Я знаю, что можно инициализировать UIBarButtonItem с идентификатором, но я должен все же найти способ изменить его после того, как он был инициализирован. Это даже возможно?
Единственная вещь, о которой я могу думать, состоит в том, чтобы удалить старую кнопку и инициализировать новую в его месте, но это едва кажется эффективным.
Какие-либо мысли?
Ok Я до смерти загуглил этот вопрос и наткнулся на примеры кода от Apple, где они делают точно такую же вещь (переключение воспроизведения/паузы графической кнопки на кнопке панели инструментов). Но вместо встроенных идентификаторов воспроизведения и паузы UIBarButtonItem
они используют пользовательский UIButton
и переключают пользовательские изображения.
Итак, если Apple пошла на создание и переключение пользовательских изображений на UIButton вместо встроенных кнопок play и pause UIBarButtonItem
, то я думаю, можно с уверенностью сказать, что нет способа программно изменить идентификатор UIBarButtonItem
.
Вот что они (Apple) делают для переключения изображений при нажатии кнопки:
// Call this when the button you want to toggle is pressed:
[playButton setImage:((p.playing == YES) ? pauseBtnBG : playBtnBG) forState:UIControlStateNormal];
Замените p.playing на любой BOOL, который вы хотите использовать для определения состояния вашей кнопки. playButton
- это пользовательская UIButton
на панели инструментов. pauseBtnBG
и playBtnBG
- это изображения для переключения.