2

次のコードがあります。

    UISwipeGestureRecognizer *swipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeHighlightReadingVC:)];
    swipeGestureRecognizer.delegate = self;
    [self.highlightReadingVC_.view addGestureRecognizer:swipeGestureRecognizer];

    UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panHighlightReadingVC:)];
    panGestureRecognizer.delegate = self;
    [panGestureRecognizer requireGestureRecognizerToFail:swipeGestureRecognizer];
    [self.highlightReadingVC_.view addGestureRecognizer:panGestureRecognizer];

私の問題は、ビューをスワイプしているにもかかわらず、常に最初にパン ジェスチャが検出されることです。パン/ドラッグの前にスワイプが最初に認識されるようにします。それ、どうやったら出来るの?

4

2 に答える 2

2

2 つUIGestureRecognizerのデリゲートの 1 つを意味のあるオブジェクトに設定し (おそらくself)、リッスンしてから返す必要がありYESます。

- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    return YES;
}

このメソッドは、gestureRecognizerまたはによるotherGestureRecognizerジェスチャの認識が、他のジェスチャ レコグナイザによるジェスチャの認識をブロックする場合に呼び出されます。復帰YESは同時認識を可能にすることが保証されていることに注意してください。一方、 を返すNOと、他のジェスチャ レコグナイザーのデリゲートが を返す可能性があるため、同時認識が防止されるとは限りませんYES

アプリでも同じ問題に直面しましたが、問題なく動作します。それであなたの問題を解決するかもしれません。

于 2012-12-19T04:45:46.423 に答える