我正在处理我的视图控制器(UIViewController 的自定义子类)中的几个 UI 组件的触摸。它有方法touchesBegan:withEvent:
、touchesMoved:withEvent:
和touchesEnded:withEvent:
。它工作正常。然后我添加了一个滚动视图 (UIScrollView) 作为层次结构中的顶视图。
现在我在视图控制器上的触摸处理程序不起作用。他们不会被召唤。有趣的是,我在滚动视图中有各种其他的 UI 组件可以工作。有些是按钮,有些是定义自己的自定义视图touchesBegan:withEvent:
,等等。唯一不起作用的是视图控制器上的触摸处理程序。
我想可能是因为滚动视图为了自己的目的而拦截了这些触摸,但我将 UIScrollView 子类化,只是为了看看我是否可以让它工作,我YES
总是从. 还是不行。touchesShouldBegin:withEvent:inContentView:
NO
touchesShouldCancelInContentView:
如果它有所不同,我的视图控制器位于标签栏控制器中,但我认为它不相关。
有没有人遇到过这个问题并有现成的解决方案?我的猜测是滚动视图猴子在响应者链上。我可以猴子回来吗?我想如果我想不出其他任何东西,我会让滚动视图下的顶级视图成为自定义视图并将消息转发到视图控制器,但看起来很笨拙。