我有一个UIBezierPath,我想用containsPoint方法执行命中测试。通过使用UIGestureRecognizerDelegate方法,shouldReceiveTouch我能够以这种方式检测实际bezier路径上的触摸,并允许路径外的触摸向上传递响应链(这是所需的行为)。
这对于水龙头来说效果非常好,但是当涉及到连续手势,即平移时会出现问题,因为shouldReceiveTouch不会覆盖touchesMoved事件。
我可以使用UIGestureRecognizerDelegate方法gestureRecognizerShouldBegin来阻止整个连续手势,但手势不会传递给下一个响应者。
是否正在继承UIGestureRecognizer并获取touchesMoved以调用shouldReceiveTouch的方式去实现它?或者我可以通过剪切路径来实现这一点,这是否也会导致在剪切区域外传递事件?
由于
答案 0 :(得分:0)
我最终覆盖了pointInside:在我的UIView子类中的withEvent,它绘制了bezier路径。通过这种方式,我可以处理离散和连续手势,并将事件转发到超级视图。