Tut-Taste, Tippen Sie auf ein Ereignis Bekommen, außer Kraft gesetzt durch Tippen und Gestik-Erkennung?

Habe ich eine Schaltfläche, die ich machen möchte, verschwinden, wenn etwas angetippt wird, andere als die Schaltfläche. Ich setzte mir also das Ziel:Aktion: für die löschen-Schaltfläche:

[self.deleteButton addTarget:self action:@selector(deleteButtonTapped:) forControlEvents:UIControlEventTouchUpInside];

später gefolgt von dem hinzufügen des tap gesture recognizer auf die enthaltende anzeigen:

[self.superview addGestureRecognizer:self.tapOutsideDelete];

Wenn ich dies mache, wird die Aktion für deleteButton ist nicht ausgeführt, wie wenn Sie die Taste Tippen wird nicht erkannt. Die gestik-Erkennung funktioniert in diesem Fall. Es funktioniert aber auch, wenn ich Tippen Sie auf deleteButton, die führt mich zu glauben, dass die tap gesture recognizer hat Priorität über die Schaltfläche Tippen.

Wenn ich entfernen Sie die gesture recognizer, deleteButton richtig funktioniert.

Ich klar und deutlich verstehe nicht, wie man diese beiden Ereignisse zusammen. Was muss ich tun?

(deleteButton ist die Nachahmung der Schaltfläche löschen einer Tabelle anzeigen-Zelle, aber in diesem Fall habe ich es in eine header-Ansicht. Ich erwarte eine Methode aufrufen, um die Schaltfläche löschen zu verschwinden, wenn ich auf eine beliebige Stelle in der Tabelle mit Ausnahme der Taste selbst, auf die gleiche Weise funktioniert es in eine Zelle.)

  • Erhalten Sie möglicherweise ein bisschen der Verrücktheit hinzufügen des gesture-recognizer selbst.superview statt selbst (oder sich selbst.sehen, wenn Sie eine view-controller). Dies würde hinzufügen, um die tableview enthält die header anzeigen, anstatt auf die header anzeigen, die möglicherweise oder möglicherweise nicht, was Sie wollen.
  • mögliche Duplikate von Gesture recognizer-und button-Aktionen
InformationsquelleAutor Jim | 2012-06-22
Schreibe einen Kommentar