2016-05-07 1 views
1

J'essaie de détecter simultanément des balayages de haut en bas sur mon application. J'ai un SKScene et j'ajoute le reconnaisseur de gestes dans func didMoveToView: view J'ai placé le délégué: UIGestureRecognizerDelegate, et ai la fonction suivante tous retournant vrai.Utilisation de gestureRecognizer: shouldRecognizeSimultaneousWithGestureRecognizer

gestureRecognizerShouldBegin: gestureRecognizer 
gestureRecognizer: shouldRecognizeSimultaneouslyWithGestureRecognizer 
gestureRecognizer: shouldReceiveTouch 

Quand je Faites glisser votre doigt avec un doigt je peux voir que shouldRecognizeSimultaneouslyWithGestureRecognizer est tiré et retour vrai. Func attaché au glissement fonctionne également. Mais lorsque j'essaie de balayer dans les deux directions en même temps, les fonctions correspondantes ne sont pas déclenchées et shouldRecognizeSimultaneouslyWithGestureRecognizer ne sont pas déclenchées.

Les balayages fonctionnent très bien quand je les fais séparément, mais quand en même temps aucun balayage n'est exécuté.

Qu'est-ce que je fais mal ici?

Edit:

class GameControlller: SKScene, SKPhysicsContactDelegate, UIGestureRecognizerDelegate {} 

Ajout des grands coups:

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 
} 

Le délégué UIGestureRecognizer 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

L'erreur n'est probablement pas dans le code que vous nous montrez atm. S'il vous plaît fournir plus de contexte (plus de code). Vous devez avoir fait des erreurs ailleurs. – Coder1000

+0

N'oubliez pas d '«importer QuartzCore» –

+0

QuartzCore ajouté ... pas différent – Starlord

Répondre

1

Je suppose que vous oubliez fixé le délégué:

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

J'ai le délégué maintenant..Mais pas de comportement différent – Starlord