当我使用手势识别器时,表格视图不会滚动

我的应用程序有一个表格视图(当然还有一个滚动窗口),这个视图通过一个手势识别器(如Facebook应用程序)来打开和closures。

如果我使用一个button来将[表格视图拖动到屏幕上],它工作正常,但是当我使用手势识别器时,表格视图不能再滚动。

下面是有问题的手势识别器的代码:

[self.view addGestureRecognizer:self.slidingViewController.panGesture]; 

有人有一个想法?

您的手势可能会阻止滚动视图手势正常工作,因为默认情况下,一次只能识别1个手势。 尝试添加自己作为你的手势的代表,并执行:

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

 self.slidingViewController.panGesture.delegate = self; 

另外,将<UIGestureRecognizerDelegate>添加到您实现的协议列表中

这里是迅捷版本:

 func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool { return true } 

我在我的UItableview中使用了UIPangesture,为了避免我在下面的代理中使用这个手势,

 //This method helped me stopped up/down pangesture of UITableviewCell and allow only vertical scroll override func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool { if let panGestureRecognizer = gestureRecognizer as? UIPanGestureRecognizer { let translation = panGestureRecognizer.translationInView(superview) if fabs(translation.x) > fabs(translation.y) { return true } return false } return false } 

我有同样的问题,在桌面视图上定义长按手势,当我长时间按下时,不能滚动表格。

修正:

1-添加UIGestureRecognizerDelegate

2-添加gesture.delegate = self (after you defined the long press gesture)

3-添加这个function:

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {return true}

如果我把它正确的看法,你添加手势识别器是表视图。 默认情况下, UIScrollView (和隐式的UITableView )类使用平移手势识别器进行滚动,手势识别器会干扰这种情况。 如果您使用另一个视图作为表视图的容器,并且您正在添加平移手势识别器,它应该可以工作。