Передача события касания во все подпредставления View Controller

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


person Community    schedule 09.09.2009    source источник


Ответы (3)


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

то есть что-то вроде

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

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

person deanWombourne    schedule 10.11.2009

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

person jackbravo    schedule 15.02.2011

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

person Biranchi    schedule 14.11.2009
comment
ИМО, это плохой подход. - person NightFury; 17.02.2014