Problem mit einem UITapGestureRecognizer

7

Ich habe einen Haupt-ViewController, der heißt WelcomeViewController . Ich habe eine UIView-Unterklasse und diese enthält einige damit in Zusammenhang stehende Dinge. Ich möchte ein UITapGestureRecognizer 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 UITapGestureRecognizer 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.

    
Andrew 10.05.2011, 18:53
quelle

5 Antworten

18

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 init oder einen anderen geeigneten Ort ein:

%Vor%

Wenn Sie im View-Controller dies in viewDidLoad (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!

  1. Öffne dein Storyboard / deine Feder.

  2. Ziehen Sie die gewünschte Art von Erkennung aus der Objektbibliothek per Drag-and-Drop auf das gewünschte UI-Element.

  3. Klicken Sie mit der rechten Maustaste auf das Erkennungsobjekt, und verbinden Sie dann selector mit einer IBAction im Eigentümer der Datei (normalerweise ein UIViewController). Falls erforderlich, verbinden Sie auch den Delegaten.

  4. Sie sind fertig!

Joseph Lin 10.05.2011 19:08
quelle
2

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.

    
Jamie 10.05.2011 19:18
quelle
1

Sie können den Empfänger von UITapGestureRecognizer auswählen, es muss nicht dieselbe Klasse sein, die den Erkenner instanziiert hat (d. h. self ). Wenn Sie es in Ihrem WelcomeViewConroller erstellen, können Sie eine beliebige Unteransicht auswählen, um die Ereignisse zu empfangen:

%Vor%     
Evan Mulawski 10.05.2011 19:05
quelle
1

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.

    
kevj 26.05.2011 17:48
quelle
1

Bitte überprüfen Sie view.userInteractionEnabled=true;

    
quelle