2010-08-06 16 views
11

Ich habe eine UITableView die eine Unteransicht eines UIView, so dass ein UIView subview eines UIScrollView ist. Wie erkenne ich die Berührungen, die die UITableView scrollen sollten?Scrolling eine UITableView innerhalb eines UIScrollView

Die UITableView kann Elementauswahlereignisse erhalten (eine Zelle in der Tabelle ist ausgewählt/angezapft), aber Sie müssen die Zelle gedrückt halten, bevor sie ausgelöst wird. Aber ich kann das UITableView nicht zum Scrollen bekommen, es ist immer das UIScrollView, das auf die Schwenkgeste reagiert.

Jede Hilfe wird sehr geschätzt. Danke im Voraus!

EDIT: Gelöst, obwohl ich die falsche Frage gestellt. Es funktioniert standardmäßig, wie Roman K darauf hingewiesen hat. Ich denke, dass das Problem damit verbunden war, einen Teil der UITableView außerhalb der Grenzen der UIScrollView (die UITableView ging über die unteren Grenzen der UIScrollView) zu haben. Einstellung es richtig in das UIScrollView passen es behoben.

+0

Ich möchte diese Antwort http://stackoverflow.com/questions/3422915/scrolling-a-uitableview-inside-a-uiscrollview/32486714#32486714 vorschlagen –

Antwort

17

Bitte stellen Sie sicher, dass UIScrollView's Eigenschaften delaysContentTouches und canCancelContentTouches sind entsprechend eingestellt. Sie steuern, wie die UIScrollView-Instanz Berührungsinformationen an ihre Unteransichten übergibt. Standardmäßig ist delaysContentTouches auf YES gesetzt. Stellen Sie außerdem sicher, dass bei der Erweiterung UIScrollView, touchesShouldBegin:withEvent:inContentView: Berührungen in der Unteransicht zulässig sind.

Andernfalls sollte UITableView Scrolling standardmäßig in Ihrem Szenario funktionieren. Wenn Sie ein Testprojekt nur mit der Ansichtshierarchie wie beschrieben erstellen, werden Sie feststellen, dass dies der Fall ist. Vergleichen Sie also die beiden und sehen Sie, welche Unterschiede das Scrollen beeinflussen.

+1

Ich glaube, ich delayscontenttouches gesetzt (auf JA) und canCancelContentTouches (auf NO gesetzt). Ich bin in der Lage, Taps in der UITableView gut zu bekommen, aber nicht Swipes und Schwenks. – Altealice

+0

Danke. Es war so lange ein Schmerz. – thedp

+3

Ich denke, dass diese Logik in iOS8 gebrochen wurde. Sieht so aus, als würde UIScrollView vertikale Scroll-Gesten abfangen und nicht ignorieren. Ich habe eine neue Frage dazu - http://stackoverflow.com/questions/25558630/uiscrollview-behavior-is-different-in-ios8 – sha

Verwandte Themen