2017-05-24 2 views
0

Ich habe eine super Aussicht, die eine UITapGestureRecognizer auf sie hat. Es ermöglicht Berührungen in der Ansicht, da in der Ansicht klickbare Elemente vorhanden sind.iOS - Superview Gestenerkennung aufgerufen wird, wenn nicht gewünscht, kann nicht abgebrochen Kind Ansicht Touch-Ereignis

Wenn diese Elemente angeklickt werden, möchte ich eine bestimmte Aktion ausführen, nicht die generische, die die gesamte Superview abdeckt. Leider weiß ich in meinem TouchDown-Event meiner Kindersteuerung nicht, wie ich das Event hier stoppen soll. Ich weiß, ich könnte eine Kludemarke erstellen, aber das scheint der falsche Weg zu sein.

Irgendwelche Ratschläge?

James

+0

Können Sie ein vereinfachtes Snippet anzeigen, wie Ihre Ansichten eingerichtet sind? Sind die Schaltflächen "untergeordnete Steuerelemente" mit Aktionen und Zielen festgelegt, und ist der Container dann eine UIView mit einer TAP-Gestenerkennung? –

+0

@ marcus.ramsden - Ja, es ist ein UIView-Container mit einem UITapGestureRecognizer und einer Schaltfläche, die ein Kind ist. –

+0

Testen Sie dies weiter. Erstellt eine Sandbox nur mit dem View-Container und dem Kind-Steuerelement und dieses Szenario funktioniert gut. Also muss es etwas anderes sein. Vielleicht ist es in einer UITableView ... nicht sicher. Ich werde hier zurück posten, wenn ich etwas entdecke. –

Antwort

0

OK bekam ich eine Lösung. Total mein Problem. Ich spielte mit dem Versuch, alle Berührungen zum Laufen zu bringen, und irgendwann hatte ich cancelTouchesInView = true in der UITapGestureRecognizer-Superview gesetzt. Während das nicht die anderen Berührungen davon abhielt zu geschehen, aus welchem ​​Grund auch immer die Berührungen, die zu der Superview durchgeführt wurden. Ich verstehe, dass diese Erklärung wahrscheinlich keinen Sinn ergibt, aber genau das ist es. Ich versuche immer noch, den Umgang mit iOS zu verstehen.

Verwandte Themen