• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

iPhoneOS 2.2 UITableView quer scrollen

Udo Hilwerling

Erdapfel
Registriert
04.02.09
Beiträge
5
Hallo, ich habe folgendes Problem, zu dem vielleicht einer von euch die Lösung für die beste User Experience weiß.

Ich habe eine tabellarische Darstellung von Personendaten, dargestellt in einem UITableView. Dieser möchte ich eine Möglichkeit überlagern, mit "Rechts-/Links-Wisch" die dargestellte Person zu ändern.

Bisher habe ich dazu ein UIScrollView angelegt (für das horizontale Scrollen von Person zu Person) und den UITableView dort reingepackt (für das vertikale Scrollen in der Tabelle). Das Problem dabei ist, dass sich die Tabelle dann nicht wie gewohnt bedient, sondern erstmal eine Weile "festgehalten" werden muss, um zum Vertikalscrolling zu kommen (der ScrollView für die Horizontale hat ja Priorität).

Jetzt habe ich schon ausprobiert, den umgebenden UIScrollView so groß zu machen wie die UITableView maximal wird und dann das vertikale Scrolling durch den UIScrollView machen zu lassen. Probleme dabei: 1. Für der horzitontale Springen von Person zu Person muss das Paging eingeschaltet sein, das sich dann automatisch auch auf das vertikale Scrolling auswirkt, was nicht erwünscht ist. 2. Scrollt die Tabelle hoch, wir didSelectRowAtIndexPath für angewählte Zellen nicht mehr aufgerufen (vermutlich, weil die Tabelle aus dem ursprünglichen frame heraus gescrollt ist).

Tja. Vielleicht hat ja jemand von euch eine Lösung. Danke schonmal!
 

Peter Maurer

Pommerscher Krummstiel
Registriert
16.03.04
Beiträge
3.077
Nachdem sich bisher noch keiner dazu gemeldet hat, trau ich mich einfach mal, den Spielverderber zu geben: Ich wuerde das nicht machen, schlicht und ergreifend.

Apple selbst laesst den User nur dann durch verschiedene UITableViews horizontal wischen, wenn jene UITableViews garantiert auf eine Seite passen und folglich kein vertikales Scrollen benoetigen (z.B. Wettervorhersage), und ich glaube, das hat einen Grund: Die meisten User scrollen nicht genau horizontal oder vertikal, sondern immer ein bisschen diagonal. Und wenn man dann z.B. beim Runterscrollen immer so ein bisschen auf die naechste Seite schielt, dann verunsichert das u.U. den User. Also braeuchte man einen Schwellenwert, um leichte Quer-Bewegung noch nicht als Wisch-Versuch zu interpretieren; aber das entspraeche dann auch wieder nicht dem, was die User aus Erfahrung mit anderen Programmen (z.B. Safari) erwarten.

Das jedenfalls waren so ungefaehr meine Gedanken, als ich vor einer Weile auch mal ueber ein solches UITableView-Mehrfach-Horizontal-Layout nachgedacht habe. Im Endeffekt habe ich mich dann doch fuer eine reine Baumstruktur entschieden, weil die mir eindeutiger schien.

Wenn ich das allerdings doch unbedingt mit Wischerei haette haben wollen, dann haette ich wahrscheinlich keinen umschliessenden UIScrollView verwendet, sondern einfach eine etwas aufgebohrte UITableView-Subklasse gebastelt, die in -touchesMoved:withEvent: & Co ueberprueft, wie die aktuelle Bewegung aussieht (eventuell zeitlich gemittelt) und davon ausgehend entscheidet:

  • horizontal > vertikal: naechste Geschwister-Detailansicht einblenden (ueber eine ebenfalls aufgebohrte UINavigationController-Subklasse, die das organisatorisch verwaltet und fuer die Animation beim Uebergang sorgt)
  • andernfalls: via super das Standardverhalten verwenden

Bin gespannt, was Du letztendlich machst. :)
 

Udo Hilwerling

Erdapfel
Registriert
04.02.09
Beiträge
5
Erstmal danke für die Hinweise!

Das Überlagern von Quer- und Hochwischen ist in meinem Fall leider unumgänglich, wenn man ein für den User effizientes UI haben will (kannst du dir auch angucken: Screencast auf http://www.teachertool.de/TeacherTool/TeacherTool_Ubersicht.html , so ab der Hälfte).

Ich habe auch schon überlegt, ob ich mir den TableView nicht sparen soll und lieber auf ein selbstgestricktes UI setzen soll. Aber ich schätze, dann gibt es trotzdem Probleme, weil dann der ScrollView ja sowohl horizontal als auch vertikal scrollen muss.

Ich habe mal eine Supportanfrage bei Apple geschaltet. Sollen die sich erstmal damit rumschlagen, evtl. haben sie ja eine gescheite Lösung. Beispielprojekt, das das Prolem demonstriert, anbei.

Ciao
Udo
 

Anhänge

  • Pages&Tables.zip
    38,5 KB · Aufrufe: 104

Udo Hilwerling

Erdapfel
Registriert
04.02.09
Beiträge
5
Kurze Schlussinfo dazu: Das Problem hat sich mit 3.0 und dem neuen Zellenmodell in Luft aufgelöst :)