9

スクロールビューを含むビューにパンジェスチャレコグナイザーを追加しようとしていますが、優先順位に問題があると思います。

私のグローバルUIViewには、次のように設定されたUIPanGestureRecognizerがあります。

_bottomPanGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(bottomPanGestureDetected:)];
_bottomPanGestureRecognizer.minimumNumberOfTouches = 2;
_bottomPanGestureRecognizer.maximumNumberOfTouches = 2;
_bottomPanGestureRecognizer.delaysTouchesBegan = NO;
_bottomPanGestureRecognizer.delaysTouchesEnded = NO;

このジェスチャを認識して、ある種のピンチダウンからアップで下から別のビューを表示したいと思います。

問題は、scrollviewが私の前に独自のパンジェスチャを認識していることです。

だから私はそれを遅らせようとしました:

[_scrollView.panGestureRecognizer requireGestureRecognizerToFail:_bottomPanGestureRecognizer];

そして、それは機能しています。scrollviewイベントは、2本の指で認識機能を上げた後に発生しますが、問題は、1本の指だけを使用してscrollviewをスクロールすると、少し遅れてスクロールが機能することです。

このイベントを遅らせたくないのですが、可能ですか?どんなアイデアでも歓迎します!

乾杯。

シリル

4

3 に答える 3

6

panRecognizer デリゲートを実装して、UIScrollView UIGestureRecognizer を同時に認識できるようにします。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    if (_panRecognizer == gestureRecognizer) {
        if ([otherGestureRecognizer.view isKindOfClass:UIScrollView.class]) {
            UIScrollView *scrollView = (UIScrollView *)otherGestureRecognizer.view;
            if (scrollView.contentOffset.x == 0) {
                return YES;
            }
        }
    }

    return NO;
}
于 2016-03-10T07:11:35.767 に答える