关于UIScrollView作为启用UIPanGesture的视图的子项的问题

时间:2013-05-23 15:55:12

标签: ios objective-c cocoa-touch uiscrollview uipangesturerecognizer

以下是该方案:

我有一个scrollView作为添加了UIPanGestureRecognizer的视图的子视图。平移手势仅适用于一个方向,让我们说从左到右。

我想要实现的是:如果scrollView.contentOffset.x == 0并且用户从左向右平移我希望PanGesture工作,否则我想让scrollView像往常一样工作。

我试过

  • 在scrollView的superview上实现hitTest:withEvent:我可以检查contentOffset,但是没有关于手势方向的数据。
  • 在scrollView中实现touchesShouldBegin:withEvent:inContentView:,但同样没有关于方向的数据。

问题似乎是时刻,如果我想在视图处理手势事件后进行此类检查,则没有机会取消它并将事件重新发送到另一个视图。

有解决方法吗? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

为已添加到superview的UIPanGestureRecognizer设置委托并实施

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { 
    if(scrollView.contentOffset.x != 0){
        return NO;
    }

    return YES;
}