1

それぞれが UIPanGestureRecognizer に接続されている 6 つの UIImageView があり、それらはすべて同じメソッドに接続されています。メソッドは次のとおりです。

- (IBAction)handlePan:(UIPanGestureRecognizer *)recognizer {

CGPoint translation = [recognizer translationInView:self.view];
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x, 
                                     recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointMake(0, 0) inView:self.view];
}

GestureRecognizers の使用に関する Ray Wenderlich のチュートリアルに従っています。そのため、ある画像が別の画像と衝突したときに何らかのコードが実行されるように、衝突を検出する方法を考えていました。コードは画像ごとに異なります。

ありがとう

4

1 に答える 1

2

レコグナイザーを使用して画像を移動する場合は、ビューにレコグナイザーをアタッチする必要があります。

これに属する、これを行うための最速の方法は、(UIImageViewでフレームを変更するメソッドで)です。

for (UIImageView *iv in _imageArray){
   if (CGRectIntersectsRect(iv.frame, _selectedImageView.frame)) {
      NSLog(@"Collision");
   }
}

_selectedImageViewは移動中の画像であり、_imageArrayすべてのUIImageView(この場合は6)を含む配列です。

于 2011-12-07T17:29:24.737 に答える