iOS结合长按和滑动手势

时间:2014-08-03 10:30:49

标签: ios objective-c

  1. 我在整个视图中添加了一个swipeUp手势。

  2. 我在整个视图中添加了longPressGestureRecognizer,将其minimunPressDuration设置为0.001f,以便它既可以检测按下操作又可以触摸移动动作,然后调用requireGestureToFail函数:

  3.  UILongPressGestureRecognizer *longPressGestureRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressed:)];
     longPressGestureRecognizer.minimumPressDuration = 0.001f; 
     [longPressGestureRecognizer requireGestureRecognizerToFail:swipeGestureRecognizer];
    

    问题是:

    当用户按住(不要移动)按钮时,longPress手势的状态仍为UIGestureStatePossible,因为swipeUp手势不会失败,因此它不会对...做出反应用户触摸。

    如果我没有调用requireGestureRecognizerToFail,则所有包含swipeUp手势的手势都会被识别为longPress手势。

    Implmenting shouldRecognizeSimultaneouslyWithGestureRecognizer:不是我所期望的。

    我想要的是当按住(不要移动)按钮时,它会触发longPress,然后如果用户向上滑动它会触发swipeUp手势,如果用户拖动但触摸模式不适合swipeUp它仍会触发longPress。

    我该如何实现?