2013-08-20 65 views
0

我该如何做到这一点,以便当我使用我的UIScrollView时,不会调用平移手势识别器选择器。没有平移手势的UIScrollView上的水平滚动

我希望能够在没有调用平移手势选择器的情况下在滚动视图中滚动。

这里是我的锅检测功能:

- (void)panDetected:(UIPanGestureRecognizer *)panRecognizer 
{ 

    CGPoint translation = [panRecognizer translationInView:self.view]; 
    CGPoint imageViewPosition = self.draggableImage.center; 
    imageViewPosition.x += translation.x; 
    imageViewPosition.y += translation.y; 

    self.draggableImage.center = imageViewPosition; 
    [panRecognizer setTranslation:CGPointZero inView:self.view]; 
} 

我不想当我用我的UIScrollView在页面的底部,它被调用。

+0

所以,你要另一种姿态添加滚动视图,有时禁用滚动视图平移手势,但留下你的活跃? – Wain

+0

他希望“我希望能够在滚动视图中滚动,而不需要调用平移手势选择器。” < - –

+0

他可能必须编写自己的滚动代码,考虑到平移手势是滚动视图滚动的原因 –

回答

4

你可以从滚动视图

NSArray* gestureRecognizers = [scrollView gestureRecognizers]; 
for (UIGestureReconizer* recog in gestureRecognizers) { 
    if ([recog isKindOfClass:[UIPanGestureRecognizer Class]]) 
     [recog removeTarget:scrollView.delegate action:@selector(scrollViewDidScroll:)]; 
} 

我不明白为什么这是需要做删除手势识别,但在这里它是。

0

不完全确定你要在这里完成什么。我还没有玩过这个,但我最初的想法是,如果你禁用平移识别器,你的滚动视图不会滚动。您的滚动视图基于泛识别器告诉它的内容来计算滚动的位置和方式。

如果你有一个替代的设置通过各种手段来处理滚动,然后:

UIScrollView *scrollView; 
[[scrollView panGestureRecognizer] setEnabled:NO];