タッチで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;
}
これが役に立てば幸いです。