Estoy usando Cocos2d para renderizar un sprite y UIGestureRecognizers para permitir al usuario desplazar, girar y escalar el sprite.Múltiples gestos para UIGestureRecognizers (iPhone, Cocos2d)
Tengo cada uno trabajando de manera aislada utilizando código como el siguiente:
UIPinchGestureRecognizer *pinchRecognizer = [[[UIPinchGestureRecognizer alloc] initWithTarget:layer action:@selector(handlePinchFrom:)] autorelease];
[viewController.view addGestureRecognizer:pinchRecognizer];
UIRotationGestureRecognizer *rotationRecognizer = [[[UIRotationGestureRecognizer alloc] initWithTarget:layer action:@selector(handleRotationFrom:)] autorelease];
[viewController.view addGestureRecognizer:rotationRecognizer];
Sin embargo, quiero tanto escalar y rotar el sprite si el usuario aprieta sus dedos mientras se gira (la aplicación Fotos hace esto, por ejemplo). Desafortunadamente, el reconocedor parece quedarse atascado en el modo "rotar" o "pellizcar", y no llamará a los dos manejadores al mismo tiempo :(
Así que, básicamente, quiero saber - ¿esto significa que yo? no se puede utilizar UIGestureRecognizers? ¿Puedo combinar dos reconocedores y hacer todas las acciones en un único controlador? ¿Tendré que subclase UIGestureRecognizer a ser algo así como "PinchAndRotateRecognizer".
Ayuda apreciado :)
Eso no es verdad. Simplemente implemente gestureRecognizer: shouldRecognizeSimultaneouslyWithGestureRecognizer: en su delegado, consulte la respuesta a continuación. –