[ScrollView] setUserInteractionEnabled n'actionne pas l'UITapGestureRecognizer

Hello,


 


J'ai un scrollView horizontal dans lequel j'ajoute (dans le code) des UIImage. Puis, je créé un UITapGestureRecognizer que j'ajoute à  la vue image (imageView):



UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapGestureCaptured:)];
[imageView addGestureRecognizer:singleTap];
[imageView setMultipleTouchEnabled:YES];

A ce niveau les imageView apparaissent et scroll. Mais en cliquant sur une vue, la methode singleTapGestureCaptured n'est pas appelée.


 


Fesant ceci:



UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapGestureCaptured:)];
[imageView addGestureRecognizer:singleTap];
[imageView setMultipleTouchEnabled:YES];
[imageView setUserInteractionEnabled:YES];

La scrollView ne scrolle plus mais la methode singleTapGestureCaptured est appelée quand je clique sur une imageView.


 


Comment pourrai-je m'y prendre pour avoir un scroll et UITapGestureRecognizer dans le scrollView horizontal ?


 


Merci


Réponses

  • AliGatorAliGator Membre, Modérateur
    Faut soit jouer sur la propriété delaysContentTouch et consoe“urs de la scrollView soit indiquer la dépendance que tu veux entre ton TapGestureRec et les GestureRec de ta scrollView
  • La méthode d'Ali est sûrement la meilleure, mais pour info tu peux également autoriser la détection de plusieurs gestures en même temps grâce à  la méthode :



    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

    du delegate de ta gesture.


  • AliGatorAliGator Membre, Modérateur

    La méthode d'Ali est sûrement la meilleure, mais pour info tu peux également autoriser la détection de plusieurs gestures en même temps grâce à  la méthode :


    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
    du delegate de ta gesture.

    C'est ce genre de truc que j'entendais pas "indiquer la dépendance que tu veux entre les 2 GestureRec" ;) ça ou bien "requireGestureRecognizerToFail:", en fonction des besoins.

    (Ca me parait plus cohérent de demander à  ce que le tap requiert que le pan/scroll fail, pour ne détecter un tap QUE si ce n'était pas un tap pour scroller la ScrollView mais bien pour faire un simple tap sur l'image)
Connectez-vous ou Inscrivez-vous pour répondre.