У меня есть контроллер представления, который создает несколько подпредставлений поверх него. Все подпредставления и контроллер представления принимают прикосновения. Как я могу передать информацию о точке касания всем субпредставлениям на экране? Имейте в виду, что каждое подпредставление покрывает весь экран, поэтому после нескольких добавлений оно немного похоже на страницы в книге. Таким образом, пользователь не может напрямую касаться любых подпредставлений ниже верхнего подпредставления. Я пробовал использовать [self.nextResponder touchesBegan: touches withEvent: event], однако он отправляет информацию касания только из верхнего подпредставления в супервизор, минуя все другие подпредставления на экране. Спасибо
Передача события касания во все подпредставления View Controller
Ответы (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
ИМО, это плохой подход.
- person NightFury; 17.02.2014