Compte tenu d'un certain état d'un de mes UIVIEWS, j'aimerais que cela réponde à ToucheBegan, puis annuler toute nouvelle touche touchée / terminée qui continuent à partir de cet événement sur TouchSbegan. p>
Fondamentalement, j'ai une sous-classe UIView au repos et si elle est touchée, je voudrais déplacer d'autres uiviews à l'écart ... Alors la prochaine fois qu'il est touché, la chaîne du répondeur peut réagir normalement à la touche touchée / terminée ... p>
Oui, je pourrais vérifier cet état dans TouxMoved / terminé, mais je me demande s'il y a un moyen de dérailler cette intermédiaire de l'événement tactile. P>
5 Réponses :
Autant que je sache, l'Uiscrollview est capable d'annuler les touches. Je suppose donc qu'il y a un moyen de le faire. Désolé, je ne peux pas fournir une solution plus précise. P>
Je n'ai pas essayé, mais je suppose une supposition éduquée.
Le premier répondeur est le destinataire actuel des événements tactiles. Donc, démissionner comme le premier répondant devrait empêcher plus d'événements touch d'entrer. Une nouvelle touche Down définira un nouveau premier répondeur. P>
[self resignFirstResponder];
Devineuse éduquée était bonne, op de faire le travail de tester cela allait bien, ne répondant pas aux résultats et à la suppression ou à la correction de votre réponse -1
En supposant que vous avez une touche, l'objet tactile est toujours le même, ce qui signifie que vous pouvez comparer à l'aide de donc, en stockant le dernier < code> uitouch code> dans votre Ceci peut être élargi pour plusieurs touches, bien sûr. P> P> == code>
uIView code> sous-classe (dans l'exemple, j'utilise une propriété appelée
lastttouch code>), vous pouvez comprendre qui touche que vous souhaitez ignorer et que vous souhaitez ignorer et que vous Voulez-vous reconnaître sur votre déplacement déplacé / annulé. Pas élégant et pas si direct, mais cela vous permet d'obtenir à ce que vous voulez. P>
let fakeTouch:Set<NSObject> = [UITouch()] let event = UIEvent() self.touchesEnded(fakeTouch, withEvent: event)
Veuillez ajouter une explication pour laquelle votre code fonctionne pour que les futurs utilisateurs puissent le comprendre facilement.
Supprimer la vue pour la hiérarchie de vue forte> C'est un article très ancien sans réponse convaincante, j'ai donc décidé d'ajouter ma solution p> Utilisation de Xcode 9, Swift 4 et iOS 11, ces solutions n'interrompent pas le toucher p> Le travail autour que j'ai trouvé est le suivant: p> Ceci est facile à mettre en œuvre dans les projets de code uniquement. Je ne l'ai pas testé en utilisant des vues dans Vous devez vous assurer de gérer la hiérarchie de vue, au cas où vous pourrez restaurer la vue dans le même point de la pile de sous-visions. J'identifie des balises à des vues pour gérer la position dans le Storyboard code>. P>
superview.subviews code> tableau p> p>