一旦UIPanGestureRecognizer
您的触摸中的激活UIView
不再通过响应者链转发,因此您UICollectionView
将不再接收触摸。
您可以尝试将您设置UIView
为您的代表,UIPanGestureRecognizer
并放置是否UIPanGestureRecognizer
应该激活的逻辑。你必须在你的 UIView 中实现委托的方法:
-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer;
例如,使用下面的代码,如果视图的 y 轴上的速度大于 x 轴的速度,您会告诉它不要激活(因此将触摸发送到UICollectionView
它下面)
-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{
UIPanGestureRecognizer *recognizer = (UIPanGestureRecognizer *)gestureRecognizer;
CGPoint velocity =[recognizer velocityInView:self];
if(abs(velocity.y)>=(abs(velocity.x))){
return NO;
}else return YES;
}
希望这会有所帮助。