Wie erkenne ich auf einem UILongPressGestureRecognizer, welches Objekt das Ereignis generiert hat?

8

Ich habe eine Ansicht mit mehreren UIB-Tasten. Ich habe erfolgreich UILongPressGestureRecognizer mit den folgenden als Selektor implementiert;

%Vor%

Was ich in dieser Methode wissen muss ist, welcher UIButton die longpress erhalten hat, da ich etwas anderes machen muss, je nachdem, welche Taste die longpress erhalten hat.

Hoffentlich besteht die Antwort nicht darin, die Koordinaten des Ortes, an dem die Longpress-Taste gedrückt wurde, den Grenzen der Buttons zuzuordnen - würde lieber nicht dorthin gehen.

Irgendwelche Vorschläge?

Danke!

    
macgeezer 09.09.2011, 12:55
quelle

3 Antworten

10

Dies ist in gesture.view verfügbar.

    
Rob Napier 09.09.2011, 13:15
quelle
3

Fügen Sie dem UIView, der die UIB-Schaltflächen als Unteransichten hat, den langen Tap-Gesten-Controller hinzu? Wenn dem so ist, ist etwas in der Art von @Magic Bullet Daves Ansatz wahrscheinlich der richtige Weg.

Eine Alternative besteht darin, UIButton abzuleiten und jedem UIButton einen longTapGestureRecogniser hinzuzufügen. Sie können dann Ihre Taste zu tun, was Sie möchten. Zum Beispiel könnte er eine Nachricht senden, die sich an einen View-Controller identifiziert. Das folgende Snippet veranschaulicht Methoden für die Unterklasse.

%Vor%

In Ihrem View-Controller haben Sie möglicherweise einen Code wie diesen:

%Vor%     
Obliquely 09.09.2011 18:03
quelle
1

Wenn Ihre Ansicht mehrere Unteransichten enthält (wie viele Schaltflächen), können Sie bestimmen, was angezapft wurde:

%Vor%     
Magic Bullet Dave 09.09.2011 13:41
quelle

Tags und Links