0

なぜswipeRightLイベントを発生させるのか、そうでないのtapRですか?

UISwipeGestureRecognizer *swipeRightL=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeLeft)];
swipeRightL.numberOfTouchesRequired=1;
swipeRightL.direction=UISwipeGestureRecognizerDirectionLeft;
[self.view addGestureRecognizer:swipeRightR];
[self.view addGestureRecognizer:swipeRightL];
UITapGestureRecognizer *tapR=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(onTap)];
tapR.numberOfTapsRequired=1;
tapR.numberOfTouchesRequired=1;
[self.view addGestureRecognizer:tapR];
4

3 に答える 3

1

It's likely your gestures are conflicting with one another. If you remove the swipe gesture does it work then?

You probably want to look at this delegate callback and return YES:

– gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
于 2013-02-22T21:36:49.450 に答える
0

「SimpleGestureRecognizers」のAppleサンプルコードは、タップ、スワイプ、回転のジェスチャレコグナイザーの例を提供し、3つのタイプすべてが1つのビュー内で機能します。見てみな。サンプルコードはストーリーボードを使用してビューとそのコントローラーを完全に構成しているため、コードは少しまばらです。ただし、コード化された構成をXcodeの「属性インスペクター」および「接続インスペクター」と比較して、違いを特定できるはずです。

于 2013-02-21T23:15:14.870 に答える
0

次のような設定を削除します。

tapR.numberOfTaps/Touches デフォルトではすでに 1 です。

デリゲート メソッドを実装してみて、それらが起動したかどうかを確認してください。

tapR.delegate = self;

- (BOOL)gestureRecognizerShouldBegin:sender { return YES; }

また、ビューの構造に関する詳細を教えていただけますか? たとえば、別のジェスチャ (スクロール ビューなど) が原因で、スワイプが起動しない場合があります。

于 2013-02-21T23:36:18.193 に答える