一旦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;
}
希望这是有帮助的。
你好,你可以验证解决方案建议是否工作?它似乎适用于其他用户。谢谢! – batkru 2014-11-24 04:29:49