2012-01-25 4 views
1

J'ai un UITapGestureRecognizer qui effectue essentiellement une action pour ajouter une sous-vue. Quand je tape, je veux seulement que la sous-vue se charge une fois, mais quand je tape deux fois très vite, elle effectue l'action deux fois. Comment puis-je empêcher cela? Fondamentalement, après avoir tapé une fois que je veux que le reconnaisseur de gestes de robinet soit désactivé temporairement pendant quelques secondes. Y a-t-il un moyen de faire cela?retarder UITapGestureRecognizer

Répondre

0

Désactivez votre reconnaissance vocale dans le sélecteur que le système de reconnaissance appelle. Remplacez didAddSubview dans la vue à laquelle vous ajoutez des sous-vues en appuyant sur le module de reconnaissance, puis réactivez-le à partir de là. Le programme de reconnaissance restera inactif pendant la durée d'ajout de la nouvelle sous-vue. Si vous animez l'addition, vous devriez avoir un délai suffisant pour ne pas réagir aux doubles pressions.

+0

l'esprit me donnant un exemple sur la façon de l'activer dans didAddSubview? – aherlambang

+0

@aherlambang Votre reconnaissance de mouvement possède une propriété appelée 'enabled'. Réglez-le sur «NO» dans le sélecteur, puis de nouveau sur «YES» dans «didAddSubview». – dasblinkenlight

0

Vous pouvez toujours utiliser un sélecteur avec un délai.

- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay 

Je voudrais également examiner l'utilisation d'un objet NSTimer.

Questions connexes