3

次の可能なジェスチャーが認識されるように、特定のジェスチャーを失敗させることは可能ですか?

より具体的には、サンプル スニペットを見てください。

UISwipeGestureRecognizer *swipeLeft = [initialize UISwipeGestureRecognizer... @selector(handleSwipe:)]

swipeLeft = UISwipeGestureRecognizerDirectionLeft;

swipeLeft.delegate = self;

UIPanGestureRecognizer *pan = [initialize UIPanGestureRecognizer... @selector(handlePan:)]

pan.delegate = self;

[pan requireGestureRecognizerToFail:swipeLeft];

上記のコードは、左スワイプがデバイスによって認識されない場合、パン ジェスチャ ハンドラーが使用されることを示しています。

だから私の質問:handleSwipeでチェックされるいくつかの基準に基づいて(デバイスによって左スワイプタッチとして認識された後)swipeLeftを意図的に失敗させ、代わりにパンジェスチャでタッチ入力を処理させることは可能ですか?

ありがとう。

4

2 に答える 2

11

UIGestureRecognizerDelegateここでプロトコルをチェックしてください:

https://developer.apple.com/library/ios/documentation/uikit/reference/UIGestureRecognizerDelegate_Protocol/Reference/Reference.html

具体的には、

gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:

メソッドが役立つ場合があります。このメソッドから単純に戻るとYES、両方のジェスチャが同時に認識されるため、両方に適切に応答できます。

于 2013-08-28T14:54:39.923 に答える
0

パン ジェスチャ用に他のハンドラーが実装されていると仮定すると、次のようにすることはできません。

-(void)handleSwipe:(id)sender {

    if //criteria is met to ignore left swipe
    {
        [self handlePan:self];   
    }
}

-(void)handlePan:(id)sender {

    // handle pan gesture here

}
于 2013-08-28T15:02:43.880 に答える