2010-11-17 3 views
1

J'utilise la méthode touchesEnded: pour faire un peu de travail lorsque je lève le doigt sur mon UIScrollView, mais mon problème (et j'ai confirmé l'utilisation de NSLog) est que la méthode touchesEnded: ne semble appelée que lorsque j'appuie sur ma vue de défilement et pas quand je touche et maintenez/glisser mon doigt et puis laisser aller?touchEnded: ne détecte pas la fin du contact correctement?

Existe-t-il une autre méthode que je dois utiliser? (BTW, je vous appelle super aussi)

je besoin d'un moyen de faire des choses dès que l'utilisateur retire ses doigts sur la vue

Répondre

2

Lorsque vous appuyez simplement, la vue de défilement passera touche jusqu'à sa sous-vues. Mais si vous commencez à glisser, le scrollview enverra un message touchCancelled à la sous-vue et traitera les touches elle-même. Découvrez les méthodes sur UIScrollViewDelegate - il y a probablement quelque chose que vous pouvez utiliser.

Alternativement, UIScrollView a une propriété canCancelContentTouches. Si vous l'éteignez, ses sous-vues recevront toujours des touches, mais bien sûr, la vue déroulante ne défilera pas.

+0

merci pour votre réponse ... il s'avère que - (void) scrollViewDidEndDragging: (UIScrollView *) scrollView willDecelerate: (BOOL) décélérer; fait le tour :) – cgossain

Questions connexes