Comment détecter appuyez sur et tapez deux fois dans le même temps, à l'aide de UITapGestureRecognizer?
Par exemple, j'ai un point de vue où je veux deux gestes:
appuyez sur pour faire action A.
appuyez deux fois pour faire action B.
Le problème est avec UITapGestureRecognizer je ne peux que minimum requis appuyez sur le comte. Le seul geste de geste de reconnaissance reconnaît un robinet avant de la double tap geste de reconnaissance reconnaît le double tap.
Exemple:
_tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureRecognized:)];
_tapGestureRecognizer.numberOfTouchesRequired = 1;
_tapGestureRecognizer.numberOfTapsRequired = 1;
[self addGestureRecognizer:_tapGestureRecognizer];
_doubleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTapGestureRecognized:)];
_doubleTapGestureRecognizer.numberOfTouchesRequired = 1;
_doubleTapGestureRecognizer.numberOfTapsRequired = 2;
[self addGestureRecognizer:_doubleTapGestureRecognizer];
Il considère toujours l'unique robinet, même si je ne touchez deux fois très vite. Comment puis-je configurer de sorte que le robinet geste de reconnaissance attend, et voit si le double-tap geste de reconnaissance reconnaît?
Solution Possible et dupliqué: stackoverflow.com/questions/7175086/...
Essayez ceci pour supprimer le retard ou l'ajuster à qui vous voulez. stackoverflow.com/a/25368653/3060790
Essayez ceci pour supprimer le retard ou l'ajuster à qui vous voulez. stackoverflow.com/a/25368653/3060790
OriginalL'auteur openfrog | 2013-10-01
Vous devez vous connecter pour publier un commentaire.
Voici ce que j'ai utilisé dans un de mes anciens projets, j'espère que cela vous aide l'homme.
cela Fonctionne, mais, pour la Simple pression du doigt, il Fait de Retard sur Call of Seul robinet
^^ Quelqu'un a trouvé une solution à ce retard?
Pour ceux qui comme @barfoon qui ont encore du retard pour annuler le double tap, veuillez vous référer à cette solution par eladleb : stackoverflow.com/a/23415324/1158074 et à l'utilisation de la sous-classe pour le double tap geste afin qu'il envoie "l'etat n'a" plus vite.
OriginalL'auteur
Sur swift 3 et swift 4:
La réponse est pour Swift 3 @Marcos
OriginalL'auteur
Créer le geste des modules de reconnaissance à l'intérieur de n'importe quelle méthode que vous voulez. Par exemple, si vous voulez touchez gestes pour votre headerView dans tableView créer ces appuyant avec les doigts à l'intérieur de
Et votre classe doit implémenter UIGestureRecognizerDelegate.
Mentionnés ci-dessus sont les 2 méthodes que délégué de classe.
OriginalL'auteur
J'ai trouvé une solution pour le retard de la simple robinet à l'aide de XCode Singe réponse. En utilisant cette approche, vous pouvez configurer dans les mili-secondes, le seuil entre un simple et un double-tap. Cette technique utilise un simple UIButton et un NSTimer de différencier entre simple et double tap.
Vous devez garder une augmentation significative (0.2) retard ou bien appuyez deux fois sur la détection échoue à s'inscrire avant le seul appuyez sur timer expire.
OriginalL'auteur