Я обрабатываю касания для пары моих компонентов пользовательского интерфейса в моем контроллере представления (пользовательский подкласс UIViewController).У него есть методы touchesBegan:withEvent:
, touchesMoved:withEvent:
и touchesEnded:withEvent:
.Работало нормально.Затем я добавил представление прокрутки (UIScrollView) как вид сверху в иерархии.
Теперь мои сенсорные обработчики на контроллере представления не работают.Им не звонят.Интересно то, что у меня есть несколько других компонентов пользовательского интерфейса в представлении прокрутки, которые работают.Некоторые из них являются кнопками, некоторые являются пользовательскими представлениями, которые определяют их собственные touchesBegan:withEvent:
и т. Д. Единственное, что не работает, - это сенсорные обработчики на контроллере представления.
Я подумал, что это может быть из-за того, что представление с прокруткойперехватывая эти прикосновения для своих собственных целей, но я подклассифицировал UIScrollView и просто чтобы посмотреть, смогу ли я заставить его работать, я возвращаю YES
всегда из touchesShouldBegin:withEvent:inContentView:
и NO
всегда из touchesShouldCancelInContentView:
.Все еще не работает.
Если это имеет значение, мой контроллер представления находится в контроллере панели вкладок, но я не думаю, что это актуально.
У кого-нибудь была эта проблема и естьготовое решение?Я предполагаю, что представление прокрутки обезьян вверх по цепочке респондента.Могу ли я вернуть его обратно?Я предполагаю, что если я не смогу что-либо еще выяснить, я сделаю представление верхнего уровня под моим представлением прокрутки как пользовательское представление и перенаправлю сообщения на контроллер представления, но это выглядит глупо.