touchesEnded: withEvent: от UIScrollView Первый ответчик - PullRequest
0 голосов
/ 04 января 2011

Я сделал UIScrollView первым респондентом. Мне нужно поддерживать сенсорные события для метода -touchesEnded:withEvent: в представлении позади него. Я пытался использовать метод -nextResponder, и это не удалось. Я попытался переслать -touchesEnded:withEvent: представлению позади этого, и это терпит неудачу.

Как мне заставить это работать? UIScrollView не будет работать, если он не является первым респондентом или не получает события другим способом.

Спасибо за любую помощь. Позор Документация и API Apple ужасны в некоторых областях.

1 Ответ

0 голосов
/ 05 января 2011

UIScrollView обрабатывает прикосновения немного необычным способом.Из справочника по классам:

Поскольку представление прокрутки не имеет полос прокрутки, оно должно знать, сигнализирует ли касание намерение прокрутки по сравнению с намерением отслеживать подпредставление в контенте.Чтобы сделать это определение, он временно перехватывает событие касания, запуская таймер и, прежде чем таймер сработает, наблюдает, делает ли касающийся палец какое-либо движение.Если таймер срабатывает без значительного изменения положения, представление прокрутки отправляет события отслеживания в затронутое подпредставление представления содержимого.Если пользователь затем перетаскивает свой палец достаточно далеко до истечения таймера, представление прокрутки отменяет любое отслеживание в подпредставлении и выполняет саму прокрутку ...

Подпредставление в представлении содержимого представления прокрутки в конечном итогеполучать не прокручивающиеся прикосновения к представлению прокрутки.

В суперпредставлении представления прокрутки вряд ли будут видны события касания, поскольку его -hitTest:withEvent: вернет представление прокрутки, поэтому события касания будут отправлены в представление прокруткине требуется пересылать их обратно по цепочке респондента в родительское представление.

Первый респондент не влияет на доставку событий касания, см. http://developer.apple.com/library/ios/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/EventsiPhoneOS/EventsiPhoneOS.html#//apple_ref/doc/uid/TP40009541-CH2-SW5

Первый респондент - этообъект респондента в приложении (обычно объект UIView), который назначен первым получателем событий, отличных от событий касания ...

...