Проходя сенсорные события - PullRequest
4 голосов
/ 01 марта 2011

У меня есть рабочий UIButton в виде моего контроллера представления.

У меня есть экземпляр UIView сверху кнопки (я буду называть его topView) в том же виде контроллера представления.Если условие выполнено, я пересылаю все сенсорные события (началось, переместилось, закончилось, отменилось) следующему представителю представления.

Но когда условие сработало, кнопка не получает событие.Если я переместу topView так, чтобы он не был над кнопкой, кнопка сработает (или установите для свойства userInteractionEnabled значение false).Если topView находится над кнопкой, кнопка не работает.Так расстраивает, что я вижу кнопку под представлением!

Нужно ли что-либо делать в контроллере представления, чтобы получать сенсорные события от отправки их следующему ответчику?

Я прочитал вседокументы, которые я могу в цепочке ответчика, но я все еще немного запутался.

1 Ответ

6 голосов
/ 01 марта 2011

NextResponder представления - это либо контроллер представления, либо его суперпредставление. UIButton в вашей настройке - ни то, ни другое, поэтому он не получает события.

В этой ситуации вместо пересылки событий следующему ответчику вы должны переопределить pointInside:withEvent:, чтобы вернуть NO. Таким образом, система будет действовать так, как будто вас не видно. Согласно документации, вы также можете установить для userInteractionEnabled значение NO в вашем представлении для того же эффекта.

...