2009-02-27 13 views
2

Ich verwendete die Vorlage "View-basierte Anwendung" in Xcode für ein iPhone-Projekt und ging in den XIB des View-Controllers.UIScrollView Berührungen scheinen nicht zu funktionieren

änderte ich den Blick aus einem Grund UIView zu einem UIScrollView, und jetzt die Methode

(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;

nie aufgerufen wird. Ich habe eine NSLog Aussage drin. Es wird nur gut aufgerufen, wenn die Ansicht des Controllers eine UIView ist, also was ist anders/speziell an UIScrollView s, dass Sie Touch-Ereignisse nicht erhalten? Wie kann ich auf ein Berührungsereignis reagieren?

Antwort

3

UIScrollView gibt nicht alle Touch-Ereignisse weiter. Dies geschieht, weil es versucht, Swipe- und Scroll-Gesten selbst zu interpretieren.

Werfen Sie einen Blick auf diesen Thread: http://discussions.apple.com/thread.jspa?messageID=7519817, um mehr über UIScrollView und Ereignisse zu erfahren. Die Quintessenz ist, dass Sie Ereignisse in der Ansicht -(void)touchesEnded:(NSSet *)aTouches withEvent:(UIEvent *)anEvent Ihrer Ansicht behandeln können, aber es ist nicht direkt.

Ich persönlich habe etwas Funkyness in UIScollViews Auswirkung auf Hit-Unteransichten gesehen.

0

Ich habe keine direkte Erfahrung hier, aber ich habe über die Dokumentation gesucht, die das gestern erklären könnte. Ich denke, Sie werden feststellen, dass UIScrollView Berührungen erfasst, um mit dem Scrollen umzugehen. Sehen Sie sich delaysContentTouches im Dokumentationsfenster an.

0

Verwenden Sie einfach eine benutzerdefinierte Inhaltsunteransicht und implementieren Sie dann touchesEnded: withEvent: in dieser Ansicht. Du wirst alle Wasserhähne bekommen, die du willst!