2012-12-28 79 views
2

我重写我的水平图像UIScrollView与平移手势识别器来检测用户刷卡。iOS UIPanGestureRecognizer防止滚动

UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureCaptured)]; 
[imgHorizontalScrollView addGestureRecognizer:panGesture]; 

我的问题是:有没有办法让我重新imgHorizo​​ntalScrollView的泛手势识别回到panGestureCaptured方法为默认?我问的原因是因为我重写了这个手势,一旦用户滑动并且手势被拾取,我就不再能够在滚动视图中滚动。我也尝试删除手势,但这也阻止了我能够滚动。

回答

6

尝试UIGestureRecognizerDelegategestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:与滚动视图的gestureRecognizer了由panGestureRecognizer

+0

我可以添加;您需要将您的视图控制器设置为'UIPanGestureRecognizer'的委托,显然,将'gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:'设置为'YES'的返回值:] – Priest

+0

当返回YES时,您仍然会得到丑陋的结果您的单元格子视图(如果您使用它进行拖动)与“tableView”滚动一起进行平移。我想看看'tableView'是否有方向锁定,然后停止识别器(如果不是这样的话)(忽略垂直滚动) –

+0

噢...刚刚使用' - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer'和如果水平滚动,则只返回“YES”。 –

0

尝试设置

panGesture.cancelsTouchesInView = NO; 

如果不工作,你应该找到一种方法,你的手势处理机更改为scrollViewDidScroll:委托方法