我知道这个话题已经详细讨论过了,但我无法搜索,找不到任何合适的解决方案。
我实际上是在滚动视图中尝试复制您在Mail.app的表视图中遇到的行为。我希望用户能够正常滚动浏览内容视图,但也可以将视图中的项目滑动。
我有一个标准UIScrollView
,只能垂直滚动。然后我有几个视图附加UIPanGestureRecognizer
个。我的视图控制器是这些手势识别器的委托,以确保滚动视图的正常滚动。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]] && gestureRecognizer != self.scrollView.panGestureRecognizer) return YES;
return NO;
}
问题是这些手势识别器始终能够识别用户何时开始滚动滚动视图。我理解为什么会这样,我已经尝试了几种方法来尝试解决它。
我最大的挫败感是UIScrollView
的手势识别器永远不会失败。如果确实如此,我可以让我的其他手势识别器在识别之前要求它失败。
我已经解决的最后一个选项(哪种作品)基本上最好描述为:
这是最佳/唯一的方法吗?