【问题标题】:iOS UIPanGestureRecognizer prevents scrolliOS UIPanGestureRecognizer 防止滚动
【发布时间】:2012-12-28 16:55:42
【问题描述】:

我正在使用平移手势识别器覆盖我的水平图像 UIScrollView 以检测用户滑动。

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

我的问题是:有没有办法让我在 panGestureCaptured 方法中将 imgHorizo​​ntalScrollView 的平移手势识别器重置为默认值?我问的原因是因为我覆盖了这个手势,一旦用户滑动并拿起手势,我就不再能够在滚动视图中滚动。我也尝试移除手势,但这也让我无法滚动。

【问题讨论】:

    标签: ios uigesturerecognizer


    【解决方案1】:

    试试UIGestureRecognizerDelegategestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:panGestureRecognizer得到的scrollView的gestureRecognizer

    【讨论】:

    • 我可以补充一下吗?您需要将您的视图控制器设置为UIPanGestureRecognizer 的委托,显然,将gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: 的返回值设置为YES:]
    • 当返回YES 时,您仍然会得到单元格子视图(如果您使用它进行拖动)与tableView 滚动一起平移的丑陋结果。我想看看tableView 是否锁定了方向,如果没有,则停止识别器(忽略垂直滚动)
    • 哦...刚刚使用- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer 实现了它,并且只有在水平滚动时才返回YES
    【解决方案2】:

    尝试设置

    panGesture.cancelsTouchesInView = NO;
    

    如果这不起作用,您应该找到一种方法将您的手势处理程序更改为 scrollViewDidScroll: 委托方法

    【讨论】:

    • 很遗憾没有效果
    猜你喜欢
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    • 2014-03-14
    • 2023-03-13
    相关资源
    最近更新 更多