¿Cómo se puede detectar si se tocó una imagen en Xcode? He mirado en la documentación de Apple y es muy confuso ... vi:Cómo detectar si se toca la imagen
if (CGRectContainsPoint([imageView frame], location))
pero mi imagen fija no se moverá. He intentado utilizar touchesBegan + touchesMoved, y la haga userInteractionIsEnabled de la imagen en sí, pero todavía no lo detectará :(
EDITAR: Gracias todos por sus sugerencias Al final, Tenía muchas ganas de que sea lo más simple posible, y sabía que mi código debe trabajo, así que mantuvo jugando con él, y después de dormir bien por la noche, me di cuenta de que era una solución bastante sencilla:
En mis toquesMoved:
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:touch.view];
CGRect shapeRect = [imageView frame];
CGRect dropSquareRect = [dropSquare frame];
CGPoint touchLocation = CGPointMake(location.x, location.y);
if (CGRectContainsPoint(shapeRect, touchLocation))
{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:.3];
[imageView setCenter:touchLocation];
[UIView commitAnimations];
}
if (CGRectIntersectsRect(shapeRect, dropSquareRect))
{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:.3];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
self.imageView.alpha = 0;
self.imageView.center = CGPointMake(dropSquare.center.x, dropSquare.center.y);
self.imageView.transform = CGAffineTransformMakeScale(0.8, 0.8);
[UIView commitAnimations];
Esto es lo que debe hacerse ... dios respuesta –