2010-03-31 4 views
3

J'utilise protocole ScrollviewDelegate à viewcontroller, mais je me sers personnalisée UIView(UIImageview) dans cette vue personnalisée.Toucher dans UIScrollview?

Pour une raison quelconque, touchMoved n'est pas appelée. Est-ce que quelqu'un a des idées pour lesquelles cela ne se passe pas?

Répondre

7

Si le défilement dans UIScrollView est activée, touchMoved événements ne sont pas propagées au contenu de vue de défilement. Comment contourner cela dépend de ce que vous voulez réaliser. Dans mon application, je devais simplement faire glisser un objet à l'intérieur UIScrollView et je l'ai fait ce qui suit dans les gestionnaires tactiles contentsView pour que:

  1. En touchesBegan: événement que j'ai vérifié si je tapais objet à être traîné. Si OUI - puis désactivé le défilement dans UIScrollView
  2. Alors que le défilement a été désactivé mon afficher son contenu ont commencé à recevoir l'événement touchesMoved et je pouvais « glisser » mon objet là-bas.
  3. In touchesEnded: J'ai réactivé le défilement.

Si vous voulez quelque chose de plus complexe, vous pouvez sous-classe UIScrollView et essayer de passer outre ses gestionnaires tactiles (voir aussi hitTest:withEvent: méthode)