2009-08-11 6 views
0

J'ai une vue de la taille 320x480 et dans un UIScrollView qui prend toute la place à mon avis.Touches dans UIScrollView

La vue défilement ne peut défiler que dans le sens horizontal et je souhaite implémenter ma propre méthode de gestion des balayages verticaux. UIScrollView ne semble pas répondre à touchesBegan et à touchedMoved.

Quelle est la solution à mon problème?

Comment puis-je avoir des contacts sur UIScrollView?

Merci d'avance.

+0

Lorsque vous dites ne répond pas aux touchesBegan et touchesMoved, que voulez-vous dire? J'ai été capable de remplacer ceux-ci dans une sous-classe pour faire la détection d'un seul clic. –

+0

Pouvez-vous poster une partie du code que vous essayez? UIScrollView hérite de UIView, il devrait donc répondre à 'touchesBegan' et' touchesMoved' comme n'importe quelle autre vue. – Tim

Répondre

1

J'ai le même problème, mais je pense savoir ce qui se passe. UIScrollView est construit pour obtenir des coordonnées relatives à son contenu, qu'il essaie de suivre. Donc les coordonnées sont différentes, c'est ma conjecture. J'ai également essayé de transférer les événements tactiles vers les reconnaisseurs de mouvements du scrollview. J'ai obtenu une réponse, mais pas aussi lisse que si le UIScrollView manipulait les touches directement.

EDIT:

j'ai finalement trouvé comment contourner la différence entre les objets UITouch livrés (ou tout ce qui cause des problèmes quand les jeter autour). J'ai remplacé hitTest:withEvent pour modifier UIView manipulé certaines touches.