ShouldReceiveTouch用于连续手势

时间:2013-02-18 11:49:11

标签: ios objective-c uigesturerecognizer uibezierpath

我有一个UIBezierPath,我想用containsPoint方法执行命中测试。通过使用UIGestureRecognizerDelegate方法,shouldReceiveTouch我能够以这种方式检测实际bezier路径上的触摸,并允许路径外的触摸向上传递响应链(这是所需的行为)。

这对于水龙头来说效果非常好,但是当涉及到连续手势,即平移时会出现问题,因为shouldReceiveTouch不会覆盖touchesMoved事件。

我可以使用UIGestureRecognizerDelegate方法gestureRecognizerShouldBegin来阻止整个连续手势,但手势不会传递给下一个响应者。

是否正在继承UIGestureRecognizer并获取touchesMoved以调用shouldReceiveTouch的方式去实现它?或者我可以通过剪切路径来实现这一点,这是否也会导致在剪切区域外传递事件?

由于

1 个答案:

答案 0 :(得分:0)

我最终覆盖了pointInside:在我的UIView子类中的withEvent,它绘制了bezier路径。通过这种方式,我可以处理离散和连续手势,并将事件转发到超级视图。