UIScrollView上的水平滚动没有平移手势

时间:2013-08-20 14:21:06

标签: ios uiscrollview uipangesturerecognizer

我怎样才能这样做,以便在我使用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时,我不希望它被调用。

2 个答案:

答案 0 :(得分:4)

您可以从滚动视图中删除手势识别器

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

我不明白为什么要这样做,但现在就是。

答案 1 :(得分:0)

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

如果你有一个替代设置来处理滚动,那么无论如何:

UIScrollView *scrollView;
[[scrollView panGestureRecognizer] setEnabled:NO];
相关问题