3

次のジェスチャ認識機能を追加しました。

UIPanGestureRecognizer *d2 = [[UIPanGestureRecognizer alloc] 
                              initWithTarget:self 
                              action:@selector(ViewDragging2:)];
[d2 setMinimumNumberOfTouches:2];
[d2 setMaximumNumberOfTouches:2];
[targetView addGestureRecognizer:d2];

そのイベントが発生したときに発生するメソッドは次のとおりです。

-(void)ViewDragging2:(UIPanGestureRecognizer*)sender {

    // some point
    CGPoint translatedPoint = [(UIPanGestureRecognizer*)sender translationInView:targetView];
}

2本の指で触れてもワンタッチのポイントになります。ファーストタッチとセカンドタッチのコードを取得するにはどうすればよいですか?

4

2 に答える 2

8

次の方法を使用して、すべてのタッチにアクセスできます。

  • (NSUInteger)numberOfTouches
  • (CGPoint)locationOfTouch:(NSUInteger)touchIndex inView:(UIView *)view

これらは、基本クラスUIGestureRecognizerで定義されています。

于 2012-05-05T04:53:01.557 に答える
4

次のコードを試してください。

UIPanGestureRecognizer *d2 = [[UIPanGestureRecognizer alloc] 
                          initWithTarget:self 
                          action:@selector(ViewDragging2:)];
  [d2 setMinimumNumberOfTouches:2];
  [d2 setMaximumNumberOfTouches:2];
 [targetView addGestureRecognizer:d2];

そのイベントが発生したときに発生するメソッドは次のとおりです。

   -(void)ViewDragging2:(UIPanGestureRecognizer*)sender
    {
      // where touchIndex is either 0 or 1.
       CGPoint location = [recognizer locationOfTouch:touchIndex inView:self.view];
   }

このリンク のlocationOfTouchとnumberOfTouchesを確認してください

よろしく、ニール。

于 2012-05-05T05:26:25.407 に答える