Filtrer le type de gesture avant de l'envoyer à  la subview

HorusHorus Membre
août 2016 modifié dans API AppKit #1
Salut,

 

Je bloque sur le filtrage des gestures, je vous explique, j'ai une container (UIView) qui contient une UIView.

 



| A                      |

|  
 |

|  |  B                 | |

|  |                      | |

|  
| |



 

Je souhaite que ce container (A) ne laisse passer uniquement l'évènement de type : tap (clic), donc un évènement de type "move" par exemple est géré directement par le container (A) et non pas par la subview ( B )

 

Je pensais utiliser la function "hitTest" au niveau du container (A) pour rentrer dans la fonction "touchesEnded" afin détecter un tap et l'envoyer à  la subview sauf que le tap ne fonctionne pas sur la subview 

( avec : self.subview.first!.touchesEnded (...) ) comme s'il n'était pas reçu.

 

Ma théorie est bonne ? J'ai oublié une étape ? Utiliser plutôt UserInteraction et le faire basculer de false à  true en fonction de l'évent ?

 

Merci d'avance,

Horus.

Réponses

  • Tu ajoutes un UITapGestureRecognizer à  la vue B.

    ça me semble aussi simple que ça !
  • La vue B est une Web View (je n'ai pas la main dessus) elle gère déjà  le tap simplement je souhaite que le scroll soit géré uniquement par la vue A


  • UIWebView a une property scrollView.


    Tu peux donc accéder à  cette scrollView et essayer de mettre scrollEnabled à  false.



    myWebView.scrollView.scrollEnbabled = false
  • Oui sauf que c'est une class custom sur laquelle je n'ai pas la main, je récupére une view que j'ajoute dans un container et je souhaite que le scroll soit utilisé uniquement par ce container et non par la subview


  • Tu peux faire un truc grade genre tu explores le graphe des subviews et dès que tu trouve une UIWebView tu fais comme je t'ai dit précédemment ?


  • Dans le doute si la custom class ne renvoi plus une webview mais autre chose j'ai utilisé : 


     


    func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool


        { ..} 


     


    Je désactive la gesture dans le cas ou ce n'est pas la mienne et si otherGestureRecognizer n'est pas un tap


Connectez-vous ou Inscrivez-vous pour répondre.