我有一个用自定义 UIView
覆盖的 UIScrollView
,需要紧急监听发生在其内部的所有触摸事件。
起初,我只收到了 touchesBegan:
和 touchesCancelled:
事件。没有 touchesMoved:
,也没有 touchesEnded:
。实际上,所有拖动手势都被上述的 UIScrollView
取消了。通过以下设置解决了这个问题:
_scrollView.canCancelContentTouches = NO;
现在,UIView上第一次触摸的时间长度会影响其行为。如果时间很短,那么相对拖动会像UIScrollView
一样进行管理。如果时间很长,则我会在我的UIView中获取touchesMoved:
事件。
我想要的是始终在我的UIView中接收touchesMoved:
。我该怎么做?