UIScrollView覆盖我的子视图的平移手势识别器

如果我有一个子视图的scrollView和子视图有一个平移手势识别器,scrollView的平移手势覆盖子视图的平移。 我想要的是相反的,我认为,这是我拖动子视图将在滚动视图内平移,但如果我触摸另一个区域滚动视图将平移平常。 有没有简单的方法来设置?

以下是对我有用的东西:

UIPanGestureRecognizer *subviewPanRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panSubview:)]; [subview addGestureRecognizer:subviewPanRecognizer]; // play nice with subview's pan gesture [scrollView.panGestureRecognizer requireGestureRecognizerToFail:subviewPanRecognizer]; 

下面覆盖这两个代表,

 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{ return YES; 

}

这将允许您识别两个手势,默认返回是NO,所以我们需要覆盖它并返回YES

 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{ if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) { if ([otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) { return NO; }else{ return YES; } } return YES; 

}

在这个代表中,你可以做任何你想做的事情,因为它的名字是gestureRecoginzer将被其他的TestRecognizer所要求的失败,你所要做的就是判断这两个手势是什么types,并返回YES或NO。