Ich habe einen Haupt-ViewController, der heißt %code% . Ich habe eine UIView-Unterklasse und diese enthält einige damit in Zusammenhang stehende Dinge. Ich möchte ein %code% zu dieser Unterklasse hinzufügen. Ich möchte nur, dass der Gestenerkenner Taps innerhalb dieser Unteransicht bestätigt. Wie mache ich das. Sollte ich das %code% in die Unterklasse setzen oder sollte ich es in die Welcome vc einfügen. Vielen Dank im Voraus.
Außerdem habe ich einen Haufen herumgespielt und kann es anscheinend nicht herausfinden.
Sie können den Empfänger von %code% auswählen, es muss nicht dieselbe Klasse sein, die den Erkenner instanziiert hat (d. h. %code% ). Wenn Sie es in Ihrem %code% erstellen, können Sie eine beliebige Unteransicht auswählen, um die Ereignisse zu empfangen:
%Vor%Es hängt davon ab, ob Sie mit dem Tap in Ihrem benutzerdefinierten Ansichtsobjekt oder im Ansichtscontroller arbeiten möchten.
Wenn dies in der Ansicht ist, fügen Sie es in seine %code% oder einen anderen geeigneten Ort ein:
%Vor%Wenn Sie im View-Controller dies in %code% (oder einem anderen geeigneten Ort) hinzufügen:
%Vor%Handler ist der gleiche:
%Vor%Sehen Sie sich das Beispiel SimpleGestureRecognizers an und Sie erhalten eine Ziemlich gute Idee.
---- Aktualisiert am 1.10.2012 ----
Für diejenigen von euch, die gerne Storyboard / Nib verwenden, ist das super einfach!
Öffne dein Storyboard / deine Feder.
Ziehen Sie die gewünschte Art von Erkennung aus der Objektbibliothek per Drag-and-Drop auf das gewünschte UI-Element.
Klicken Sie mit der rechten Maustaste auf das Erkennungsobjekt, und verbinden Sie dann %code% mit einer IBAction im Eigentümer der Datei (normalerweise ein UIViewController). Falls erforderlich, verbinden Sie auch den Delegaten.
Sie sind fertig!
Ich denke, Sie haben vielleicht das gleiche Problem, das ich erlebt habe. Wenn Sie [yourCustomView addGestureRecognizer: tapRecognizer] aufrufen; Sie müssen in Ihrem Beispiel über eine UIView * referenzieren versuche es:
%Vor%hoffe das hilft.
Ich denke, Sie müssen den Delegaten des Gestenerkenners so einstellen, dass er der Ansichtscontroller ist, den Sie mit den Taps behandeln wollen.
%Vor%zum Beispiel. Nehmen Sie dann das UIGestureRecognizerDelegate-Protokoll in Ihrer Kopfzeile an.
Bitte überprüfen Sie %code%