UIScrollView предотвращает прикосновенияНачал, прикосновенияПеремещен, прикосновенияВыведен на контроллер просмотра

Я обрабатываю касания для пары моих компонентов пользовательского интерфейса в моем контроллере вида (пользовательский подкласс UIViewController). В нем есть методы touchesBegan:withEvent:, touchesMoved:withEvent: и touchesEnded:withEvent:. Все работало отлично. Затем я добавил вид прокрутки (UIScrollView) как вид сверху в иерархии.

Теперь мои сенсорные обработчики на контроллере вида не работают. Их не вызывают. Интересно то, что внутри вида прокрутки у меня есть различные другие компоненты пользовательского интерфейса, которые работают. Некоторые из них - это кнопки, некоторые - пользовательские виды, которые определяют свои собственные touchchesBegan:withEvent:, и т.д. Единственное, что не работает - это сенсорные обработчики на контроллере представлений.

Я подумал, может быть, это из-за того, что вид прокрутки перехватывает эти касания для своих собственных целей, но я подраздел UIScrollView и просто чтобы посмотреть, смогу ли я заставить его работать, я возвращаю YES всегда из touchesShouldBegin: withEvent:inContentView: и NO всегда с touchchesShouldCancelInContentView:. До сих пор не работает.

Если это имеет значение, то мой контроллер вида находится внутри контроллера табуляции, но я не думаю, что это имеет значение.

У кого-нибудь была эта проблема и есть готовое решение? Я думаю, что обезьяны вида прокрутки вверх по цепочке ответчика. Могу ли я вернуть его обратно? Думаю, если я больше ничего не могу понять, я сделаю вид верхнего уровня под видом прокрутки пользовательским видом и переадресацию сообщений на контроллер вида, но это кажется неприятным.

26
задан morningstar 16 September 2011 в 01:32
поделиться