Обнаружение касания или нажатия в UIBarButtonItem - PullRequest
2 голосов
/ 09 января 2011

У меня есть ScrollView, который показывает фотографии.При прикосновении к экрану появляется UIToolBar с несколькими кнопками UIBarButtonItem, такими как «Предыдущий», «Следующий», «Воспроизвести ...». Если пользователи ничего не делают в течение 5 секунд, панель инструментов снова исчезает.

Это все оченьаналогично приложению Apple Photos.

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

Таким образом, возникает проблема, если пользователь удерживает кнопку нажатой в течение нескольких секунд ... программа будет считать, что ничего не произошло, и удалит панель инструментов через 5 секунд.

Фото приложение не имеет этой проблемы.Еще лучше: когда вы удерживаете кнопку Next или Previous нажатой или дольше секунды, она уже выполняет «действие», связанное с UIBarButtonItem!

Короче говоря, я хочу выполнить одно из следующих действий: - узнатьнажата ли UIBarButtonItem - чтобы узнать, подсвечен ли UIBarButtonItem - или просто узнать, есть ли какое-либо нажатие где-либо, происходящее

1 Ответ

2 голосов
/ 09 января 2011

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

В качестве альтернативы, вы можете попробовать создать подкласс UIToolbar и изменить его -[touchesBegan:withEvent:] и -[touchesEnded:withEvent:] методы, чтобы сообщить вам, когда пользователи начинают / прекращают взаимодействие с чем-либо на панели инструментов.

Последнее, вероятно, проще.

...