长按结束后 iOS 滑动,无需抬起手指



我想实现后退导航,使用长按并向左滑动,而不抬起手指,但如果长按后不抬起手指,则无法识别滑动手势。

我还实现了以下委托方法,但没有显示所需的结果。有什么想法吗?

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
if (gestureRecognizer == _longPress && otherGestureRecognizer == _swipe) {
    return YES;
}
if (gestureRecognizer == _swipe && otherGestureRecognizer == _longPress) {
    return YES;
}
return NO;

编辑:- 长按手势触发方法,该方法更改当前UIViewController的背景颜色(只是为了看看它是否触发)。-滑动手势触发方法, -popView控制器:动画

不要使用 2 个不同的手势识别器,因为这是 1 个手势。应创建自定义手势子类来对逻辑进行编码,以便它是供用户添加和执行的单个逻辑手势。

在你的手势中,我会有一个小型状态机,这样你就知道什么时候开始,什么时候长按时间结束,他们是否真的滑动了足够多。从每个状态来看,你只在寻找一件事发生,如果发生其他任何事情,那么你就知道这是失败的,手势可能会失败。

最新更新