Pregunta

Tengo 6 uiImageViews, cada uno conectado a UIPangeSterecognizer y todos están conectados al mismo método. El método es:

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

Estoy siguiendo el tutorial de Ray Wenderlich sobre el uso de GestureRedizers. Entonces, me preguntaba cómo detectar colisiones para que cuando una imagen choca con otra imagen, se ejecute algún código. El código es diferente para cada imagen.

Gracias

¿Fue útil?

Solución

Si desea mover la imagen con el reconocimiento, tal vez debería adjuntar el reconocimiento a su vista.

Pertenecer a esto, la forma más rápida de hacer esto, es (en el método que cambia el marco en su UIIMageView)

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

_selectedImageView es la imagen que te estás moviendo y _imageArray es una matriz que contiene toda su UIImageView (en su caso son 6).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top