Colisión de UipangeStereCognizer
-
27-10-2019 - |
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
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).