0

我发现了很多关于管理手势识别器的帖子,但我找不到我的答案,或者更确切地说是让任何东西正常工作。

我在主 ViewController 中将 UISwipeGestureRecognizer 设置为向下,并且 x 轴上的 PanGestureRecognizer 连接到覆盖视图,该覆盖视图将覆盖视图拉到右侧覆盖我的主视图。

向下滑动,平移是从左到右。

我希望向下滑动以对所有视图起作用,并且确实如此,但是当用户在我的覆盖视图上向下滑动时,它也会触发隐藏视图的 UIPanGestureRecognizer。我认为这是因为滑动时 X 方向有轻微的移动,所以 Pan 被触发了。

如何让我的 UIPanGestureRecognizer 仅在它是向左或向右的明确平移而不是滑动的尾端时才触发?

我试过 shouldRecognizeSimultaneouslyWithGestureRecognizer 但它不能真正正常工作。目前他们都设置为委托自我。

任何帮助将不胜感激。谢谢!

4

1 回答 1

0

解决方案是放置

[panGesture requireGestureRecognizerToFail:swipeGesture];

在我的 viewController 的 viewDidLoad 中。

并实施

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

在我的 ViewController.m 中。

我把它放在我的覆盖视图的 viewDidLoad 和 .m 中,并且从未被调用过。傻我。

于 2013-06-16T16:02:41.563 回答