0

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

4

2 回答 2

5

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

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

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

于 2013-08-20T14:28:45.057 回答
0

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

如果您有其他设置来处理滚动,那么一定要:

UIScrollView *scrollView;
[[scrollView panGestureRecognizer] setEnabled:NO];
于 2013-08-20T14:33:58.983 回答