2009-08-11 13 views
0

Ich habe eine Ansicht der Größe 320x480 und darin eine UIScrollView, die aus meiner Sicht den ganzen Platz nimmt.Touches in UIScrollView

Die Bildlaufansicht kann nur in horizontaler Richtung gescrollt werden und ich möchte meine eigene Methode für die Handhabung vertikaler Wischbewegungen implementieren.

UIScrollView scheint nicht auf Berührungen zu reagierenBegan und zu berührtMoved.

Was ist die Lösung für mein Problem?

Wie kann ich Berührungen erhalten, die auf UIScrollView gemacht wurden?

Vielen Dank im Voraus.

+0

Wenn Sie sagen, reagiert nicht auf BerührungenBegan und berührtMoved, was meinst du? Ich konnte diese in einer Unterklasse überschreiben, um die Einzeltippenerkennung durchzuführen. –

+0

Können Sie etwas von dem Code posten, den Sie versuchen? UIScrollView erbt von UIView, also sollte es auf "touchesBegan" und "touchesMoved" genauso reagieren wie jede andere Ansicht. – Tim

Antwort

1

Ich habe das gleiche Problem, aber ich denke ich weiß, was passiert. UIScrollView ist gebaut, um Koordinaten relativ zu seinem Inhalt zu bekommen, dem er zu folgen versucht. Also die Koordinaten sind anders, das ist meine Vermutung. Ich habe versucht, Berührungsereignisse auch an die Gestenerkenner der Scrollview weiterzuleiten. Ich habe eine Antwort bekommen, aber bei weitem nicht so glatt, als wenn die UIScrollView die Berührungen direkt behandeln würde.

EDIT:

Ich fand schließlich heraus, wie um den Unterschied zwischen den UITouch Objekten geliefert arbeiten (oder was auch immer Probleme verursacht, wenn sie um das Werfen). Ich habe hitTest:withEvent überschrieben, um zu ändern, welche UIView bestimmte Berührungen behandelt.