2013-05-07 8 views
0

J'essaie de comprendre comment appeler une action après que le UIGestureRecognizer ait détecté le geste, quand il "perd le focus" (l'utilisateur lève son doigt de l'écran). Donc, fondamentalement, si un utilisateur passe son doigt par exemple, puis lève le doigt de l'écran, comment puis-je détecter que le doigt a été levé?UIGestureRecognizer "focus perdu"?

Répondre

0

Vous pouvez utiliser la propriété "state" pour détecter l'heure à laquelle l'utilisateur finit par glisser.

- (void)handleSwipeGesture:(UISwipeGestureRecognizer *)recognizer 
{ 
    if (recognizer.state == UIGestureRecognizerStateEnded) 
    { 
    //do something 
    } 
} 
+0

Je mis en œuvre votre code, mais UIGestureRecognizerStateEnded est appelé dès que le geste est reconnu, pas après le doigt a été soulevé de l'écran, des idées? –

+0

Vous devez définir cancelsTouchesInView et delaysTouchesEnded à NO pour geste de balayage, et essayer de mettre en œuvre - (void) touchesEnded: (NSSet *) touche withEvent: (UIEvent *) événement { pour (UITouch * touche en touche) { if (touch.phase == UITouchPhaseEnded) { NSLog (@ "touché"); } } } – wesley

Questions connexes