0

J'ai un UIView dans un UIScrollView. Je veux que la vue fasse quelque chose quand on tape dessus et que l'on fasse quelque chose de différent quand le robinet se termine. J'ai donc utilisé un UILongPressGestureRecognizer. J'ai mis le minimumPressDuration à zéro. Cela fonctionne bien, mais mon problème est que je ne peux plus utiliser la vue défilement correctement car chaque contact dans la vue déclenche maintenant le reconnaissance de mouvement.Swift: Conflit entre LongPressGestureRecognizer et faites défiler vue

Quelqu'un at-il une idée de comment résoudre ce problème? Puis-je demander à LongPressGestureRecognizer de ne pas réagir lors des mouvements de balayage?

+0

voir ce https://stackoverflow.com/questions/15870756/using-uilongpressgesturerecognizer-for-subviews-of-uiscrollview –

+1

utilisez [viewObject addGestureRecognizer: longPress]; Ou longPress.minimumPressDuration = 0.05; – Govaadiyo

Répondre

1

Avez-vous essayé d'installer:

let gesture = UILongPressGestureRecognizer() 
gesture.cancelsTouchesInView = false 

Essayez également d'utiliser un UILongPressGestureRecogniser avec:

extension ViewController: UIGestureRecognizerDelegate { 
    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool { 
     return true 
    } 
} 

ViewController est le delegate de votre geste de reconnaissance.