我想知道平移手势的速度,以确定手势是向下滑动还是向上滑动。如果滑动是向下的,则视图不应该接收触摸并且通过hitTest将触摸返回到其超视图,hitTest将处理触摸事件,如果触摸向上,则当前视图应该处理触摸事件。但是,我无法在当前视图(子视图)内的shouldReceiveTouch方法内获得触摸的速度。
是否因为在调用gestureRcognizerShouldBegin方法之前实际上不会处理触摸?
如果我的想法不起作用,还有其他方法可以实现我想要的吗?
答案 0 :(得分:0)
我认为this可能会帮助您实际需要的东西。您需要做的是使用目标函数并使用 Y 值来获取方向。
我刚刚分享了该主题如何帮助我们。你可以试试。
- (void)pan:(UIPanGestureRecognizer *)recognizer
{
if ((recognizer.state == UIGestureRecognizerStateChanged) ||
(recognizer.state == UIGestureRecognizerStateEnded))
{
CGPoint velocity = [recognizer velocityInView:self.view];
if (velocity.y >0) // panning down
{
//Do your thing
}
else // panning up
{
//Do your thing
}
}
}