2016-05-07 12 views
1

Ich versuche, Swipes nach oben und unten gleichzeitig in meiner App zu erkennen. Ich habe eine SKScene und ich füge die Gestenerkenner in func didMoveToView: view Ich habe den Delegaten gesetzt: UIGestureRecognizerDelegate, und haben die folgenden Funktionen alle True zurück.Verwenden von GestenRecognizer: shouldRecognizeSimultouslyWithGestureRecognizer

gestureRecognizerShouldBegin: gestureRecognizer 
gestureRecognizer: shouldRecognizeSimultaneouslyWithGestureRecognizer 
gestureRecognizer: shouldReceiveTouch 

Wenn ich mit einem Finger Swipe kann ich sehen, dass shouldRecognizeSimultaneouslyWithGestureRecognizer abgefeuert wird und die Rückkehr wahr. Func beim Swipe funktioniert auch.

Aber wenn ich versuche, gleichzeitig in beide Richtungen zu wischen, werden die entsprechenden Funktionen nicht ausgelöst und shouldRecognizeSimultaneouslyWithGestureRecognizer werden nicht ausgelöst.

Die Swipes funktionieren gut, wenn ich sie separat mache, aber wenn gleichzeitig keine Swipes ausgeführt werden.

Was mache ich hier falsch?

Edit:

class GameControlller: SKScene, SKPhysicsContactDelegate, UIGestureRecognizerDelegate {} 

Hinzufügen die Seitenhiebe:

override func didMoveToView(view: SKView) { 
    print("did move to view") 
    let swipeDown = UISwipeGestureRecognizer(target: self, action: #selector(GameControlller.PaddleMoveUp(_:))) 
    swipeDown.direction = .Down 
    self.view!.addGestureRecognizer(swipeDown) 

    let swipeUp = UISwipeGestureRecognizer(target: self, action: #selector(GameControlller.PaddleMoveDown(_:))) 
    swipeUp.direction = .Up 
    self.view!.addGestureRecognizer(swipeUp) 
    swipeDown.delegate = self 
    swipeUp.delegate = self 
} 

Die UIGestureRecognizer Delegierten func:

func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool { 
    return true 
} 


func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool { 
    print("Simultaneous gesture recognizer!") 
    return true 
} 
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool { 
    return true 
} 
+0

Der Fehler ist wahrscheinlich nicht im Code, den Sie uns atm zeigen. Bitte geben Sie mehr Kontext (mehr Code). Du musst irgendwo woanders einen Fehler gemacht haben. – Coder1000

+0

Vergiss nicht, 'QuartzCore' zu ​​importieren –

+0

Hinzugefügt QuartzCore ... nicht anders – Starlord

Antwort

1

Ich denke, Sie den Delegaten vergessen gesetzt:

swipeUp.delegate = self 
swipeDown.delegate = self 
+0

Ich habe den Delegierten jetzt .. Aber kein anderes i Verhalten – Starlord