1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

iPhoneOS 2.2 UITableView quer scrollen

Dieses Thema im Forum "OS X-Developer" wurde erstellt von Udo Hilwerling, 25.05.09.

  1. Udo Hilwerling

    Udo Hilwerling Erdapfel

    Dabei seit:
    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!
     
  2. Peter Maurer

    Peter Maurer Carmeliter-Renette

    Dabei seit:
    16.03.04
    Beiträge:
    3.274
    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. :)
     
  3. Udo Hilwerling

    Udo Hilwerling Erdapfel

    Dabei seit:
    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:

  4. Udo Hilwerling

    Udo Hilwerling Erdapfel

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

Diese Seite empfehlen