2017-08-27 1 views
0

Ich bin ziemlich neu in der App-Entwicklung (mit einem coding Hintergrund) mit Swift 3 und Xcode 8.3.3. Ich habe einige Objective-C Antworten gefunden, die ich nicht ganz verstehe und nicht weiß, wie man sie in Swift implementiert.Swift 3: UISwipeGestureRecognizer funktioniert auf View, aber nicht auf ViewContainer

Hier ist, was ich habe:

  1. Document Outline, Storyboard & Connections
  2. the OnboardingViewController Class

Was sie tut

Die swipeOnView Methode funktioniert wie ein Charme und ich weiß, dass dies aufgrund der "2. Document Outline "als" Container View "ist ein untergeordnetes Objekt der Ansicht und erhält keine Gesten.

ABER: sobald die" Container View "deckt (oder sollte - es ist die Hälfte der Höhe aufgrund der Tests) der gesamte Bildschirm, es scheint, dass es verhindert, dass die UIView Gesten zu erhalten -> beide Methoden sind nutzlos -> das, wieder ... ist richtig und ich bekomme es.

Was ich will es tun

ich mag die swipeOnContainerView Methode haben arbeiten, aber ich war, um herauszufinden, nicht in der Lage, wie die Steuerung zu sagen, zu „hören“ nur t o die Gesten des Containers und ignorieren Sie die "Eltern" UIView.

Antwort

0

Ich war in der Lage, es selbst herauszufinden und hier ist, wie:

Schritt 1: einen Ausgang für jeden das heißt @IBOutlet var swipeLeftGestureRecognizer GestureRecognizer hinzufügen: UISwipeGestureRecognizer!

Schritt 2: in viewDidLoad() in einen Delegierten für jeden Ausgang dh swipeLeftGestureRecognizer.delegate = self

Schritt 3: Ändern der Rückgabewert von func GestureRecognizer (_ GestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) auf true

Schritt 4: die Referenzierung Outlet auf die Frage UIView/SubView in

verbinden

Schritt 5: hinzufügen zu jedem IBActions GestureRecognizer

erledigt

Verwandte Themen