私はこのようなセットアップgestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
その後、UIPanGestureRecognizer
を追加しました:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
if ([gestureRecognizer isEqual:self.panGesture] && [otherGestureRecognizer isEqual:self.collectionView.panGestureRecognizer]){
return YES;
}
return NO;
}
私はまた、唯一のgestureRecognizerShouldBegin:
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
if ([gestureRecognizer isEqual:self.panGesture]) {
if (gestureRecognizer.numberOfTouches > 0) {
CGPoint point = [gestureRecognizer locationOfTouch:0 inView:gestureRecognizer.view];
CGFloat distX = abs(self.collectionView.lastTouchPos.x - point.x);
CGFloat distY = abs(self.collectionView.lastTouchPos.y - point.y);
if (distX > distY) {
return NO;
}
} else {
return NO;
}
}
return YES;
}
にチェックを追加しましたパンを上または下に移動するときは、self.panGesture
を使用します。
アップデートは
https://stackoverflow.com/a/8603839/667834は、それはあなたがあなたの垂直パンをどうしようとしているのは何gestureRecognizerShouldBegin
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
if ([gestureRecognizer isEqual:self.panGesture]) {
if (gestureRecognizer.numberOfTouches > 0) {
CGPoint translation = [self.panGesture velocityInView:self.collectionView];
return fabs(translation.y) > fabs(translation.x);
} else {
return NO;
}
}
return YES;
}
のためのより良い方法を持っているように見えますか?それはスクロールを伴うかどうか? – rdelmar
スクロールは必要ありません。私は、スクロールビューの同じ親ビューにアニメーション化したいサブビューを持っています(スクロールビューはその親ビューの一部を占有します) – lramirez135
次に、私はあなたの声明を理解しません:「私は本質的にすべてのスクロールロジックを書き換えます "。水平パンは正しく動作しますか? panUpはまだscrollViewによって傍受されていますか? – rdelmar