UIGestureRecognizer - 检测像触控板一样的点击和拖动

时间:2011-03-10 13:24:49

标签: objective-c ios

有没有办法级联UIGestureRecognizers来检测点击然后拖动。 例如,我想检测用户何时点击然后拖动他的手指。

这与拖鞋在拖鞋上的工作方式类似。

所以我想检测一下,然后我想让UIPanGestureRecognizer给我发送连续更新。

我想使用标准的UIGesture类创建这个新手势,而不是使用原始触摸创建自己的手势。

这甚至可能吗?

1 个答案:

答案 0 :(得分:23)

虽然我没有按照预期的方式找到解决方案,但我找到了更好的解决方案。

通过使用UILongPressGrstureRecognizer,令人惊讶的是它能够实现点击和拖动。

你必须:

  1. 将numberOfTapsRequired设置为1以检测初始点击。
  2. 将minimumDuration设置得更小,以便更快地检测拖动而无需等待
  3. e.g:

    UILongPressGestureRecognizer *mouseDrag = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleDrag:)];
    mouseDrag.numberOfTapsRequired=1;
    mouseDrag.minimumPressDuration=0.05;
    [clickLeft requireGestureRecognizerToFail:mouseDrag];
    

    要处理拖动,您必须确定将其作为连续手势进行适当处理的状态。