Я имею представление с UITapGestureRecognizer
. Поэтому, когда я нажимаю на вид, над этим видом появляется другой вид. Этот новый вид имеет три кнопки. Когда я теперь нажимаю на одну из этих кнопок, я не получаю действие кнопок, я только получаю действие жеста касания. Поэтому я больше не могу использовать эти кнопки. Что я могу сделать, чтобы донести события до этих кнопок? Странно то, что кнопки по-прежнему подсвечиваются.
Я не могу просто удалить UITapGestureRecognizer после того, как я получил его нажмите. Потому что с его помощью новый вид также может быть удален. Означает, что я хочу поведение как полноэкранные элементы управления видео .
void
так, чтобы не оставлять никакой информации во время выполнения для использования при обнаружении. Но то, что вы можете сделать, это пройтись по иерархии представлений, проверитьUIControl
и вернуться,NO
если вы найдете какие-либо элементы управления.Как продолжение Кейси после ответа Кевина Балларда:
Это в основном заставляет работать все типы пользовательских элементов управления, такие как кнопки, ползунки и т. Д.
источник
setCancelsTouchesInView = NO
чтобы не вызывать жест касания при взаимодействии с элементами управления. Однако вы можете написать это лучше:return ![touch.view isKindOfClass:[UIControl class]];
Нашел ответ здесь: ссылка
Вы также можете использовать
Что мешает распознавателю крана быть единственным, чтобы поймать все крана
ОБНОВЛЕНИЕ - Майкл упомянул ссылку на документацию, описывающую это свойство: cancellsTouchesInView
источник