1

ダブルタップ ジェスチャを検出するために、アプリケーションに UITapGestureRecognizer を追加しています。

UITapGestureRecognizer *tapgr = [[UITapGestureRecognizer alloc]
                                        initWithTarget:self action:@selector(handleTapGesture:)];
  tapgr.numberOfTaps = 2;
  tapgr.delegate = self;
  [_view addGestureRecognizer:tapgr];
  [tapgr release];

アプリケーションでツールチップを表示しない限り、これは正常に機能しています。それらは次のように設定されています。

[_view.toolTipView addTarget:self action:@selector(handleTap:) forControlEvents:UIControlEventTouchUpInside];

ジェスチャ認識機能を導入する前は、これらのツールチップはクリック可能で反応していましたが、今では反応しなくなりました...

ジェスチャ認識エンジンと標準の UIControlEventTouchUpInside-Setup を連携させるにはどうすればよいですか?

4

3 に答える 3

0

_view がシングルタップとダブルタップを同時に応答できるようにしたい場合は、これを試すことができます

   UITapGestureRecognizer * singleTap    = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
   UITapGestureRecognizer * doubleTap    = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)];

   [doubleTap setNumberOfTapsRequired:2];

   //Add this code to disable double tap and only responds to single tap when user tap the _view just once time
   [singleTap requireGestureRecognizerToFail:doubleTap]; 

   [self addGestureRecognizer:doubleTap];
   [self addGestureRecognizer:singleTap];
   [singleTap release];
   [doubleTap release];

TouchEvent を使用する場合は、UIControlEventTouchDownRepeat を試してください

  [button addTarget:self actionselector(multipleTap:withEvent:) forControlEvents:UIControlEventTouchDownRepeat];


  //Try to check wheather is doulbe tap or single tap.

  -(IBAction)multipleTap:(id)sender withEvent:(UIEvent*)event {

     UITouch* touch = [[event allTouches] anyObject];

     if (touch.tapCount == 2) {

     // do action.

     }

  }
于 2013-06-21T06:00:38.763 に答える
-1

そんなことはできません。それを実装するには別の方法を選択する必要があると思います。

于 2013-06-21T06:00:15.357 に答える