我一直试图只UIScrollView在一个方向上滚动并仍然获得所有UITouch事件。我根本不完全确定这是可能的。
我试图覆盖UIResponder“触摸”事件,但是一旦UIScrollView开始滚动,触摸方法就会停止调用。
然后我尝试将UIScrollView'scrollEnabled属性设置为 false ,直到我希望UIScrollView开始接收拖动事件,但我似乎无法找到一种方法让UIScrollView开始在拖动中接收触摸事件。这可能吗?
我的下一次尝试是在滚动视图中添加“填充”并通过玩弄该contentOffset属性来创建我自己的“触摸事件”,但这开始调用scrollViewDidScroll:过多的时间并疯狂地处理——还有一些响应有效性的问题.
我玩过hitTest:withEvent:, pointInside:withEvent:,touchesShouldBegin:withEvent:inContentView:但touchesShouldCancelInContentView:没有任何成功。
从那以后,我尝试了其他一些方法,但都没有奏效。此外,根据我的发现,设置delaysContentTouches为 false 会破坏滚动响应。
我会喜欢一些真正的覆盖触摸方法。如果我不调用 super 的方法,则UIScrollView不会收到触摸。
我需要一种方法来获取UITouches (拖动、开始、释放和取消,而不仅仅是点击),而不影响 的滚动UIScrollView,因为UIResponder一旦滚动开始,“触摸”事件就会消失。这可能吗?