1

我有 6 个 UIImageView,每个都连接到 UIPanGestureRecognizer,它们都连接到同一个方法。方法是:

- (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];
}

我正在关注 Ray Wenderlich 关于使用 GestureRecognizers 的教程。所以,我想知道如何检测碰撞,以便当一个图像与另一个图像发生碰撞时,运行一些代码。每个图像的代码都不同。

谢谢

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 回答