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!
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%Wenn Ihre Ansicht mehrere Unteransichten enthält (wie viele Schaltflächen), können Sie bestimmen, was angezapft wurde:
%Vor%Tags und Links ios uigesturerecognizer