Передача сенсорного события всем подпредставлениям View Controller - PullRequest
4 голосов
/ 10 сентября 2009

У меня есть контроллер представления, который создает несколько подпредставлений поверх него. Все подпредставления и контроллер представления принимают прикосновения. Как я могу передать информацию о точке касания всем подпредставлениям на экране? Имейте в виду, что каждое подпредставление покрывает весь экран, поэтому после нескольких добавлений он немного похож на страницы в книге. То есть любые подпредставления ниже верхнего подпредставления не могут быть затронуты непосредственно пользователем. Я попытался использовать [self.nextResponder touchesBegan: touches withEvent: event], однако это только отправляет сенсорную информацию из верхнего подпредставления в суперпредставление, минуя все остальные подпредставления на экране. Спасибо

Ответы [ 3 ]

3 голосов
/ 11 ноября 2009

Я бы поставил другое подпредставление поверх всего. Это позволит получить все штрихи, которые вас интересуют, и передать их обратно в контроллер представления. Затем ваш контроллер представления будет перебирать все дочерние UIViews, передавая им события.

т.е. что-то вроде

for (UIView *view in subviews)
  [view touchesBegan:touches withEvent:event];

хотя предполагается, что все подпредставления, в которые вы хотите передать события, являются дочерними элементами вашего контроллера представления.

0 голосов
/ 15 февраля 2011

Реализуйте свой сенсорный метод только в суперпредставлении. Оттуда переберите все подпредставления и отправьте им сенсорный метод.

0 голосов
/ 14 ноября 2009

В качестве альтернативы вы можете отправить NSNotification всем подпредставлениям. А в классе subvews вы можете лучше управлять и обрабатывать уведомления для выполнения какой-либо задачи.

...