wie man zyklisches Scrollen in der Tabellenansicht implementiert

8

Könnten Sie mir bitte mit einem kreisförmigen Scrollen in Tabellenansicht bitte helfen.

Ich möchte, dass, wenn ich in der Tabellenansicht scrolle, die Zeilen in umgekehrter Reihenfolge gehen sollten - Es sollte erscheinen, dass sich zurück bewegen (untere Reihen gehen herum und kommen jetzt wieder von oben nach unten), d. h. zyklisches Scrollen im Grunde.

Wie kann ich das tun? Irgendwelche Vorschläge bitte.

Danke im Voraus.

    
Aisha 15.04.2011, 10:43
quelle

4 Antworten

3

Sie könnten das zyklische Scrollen "wiederholen", indem Sie die gleichen Zellen noch einmal wiederholen. Geben Sie in der Methode numberOfRowsInSection n mal die tatsächliche Anzahl der Zeilen zurück. Stellen Sie sicher, dass n groß genug ist.

%Vor%

Verwenden Sie dann in der cellForRowAtIndexPath-Methode (und anderswo) den Mod-Operator (%), um die richtige Zelle zurückzugeben.

%Vor%

Vielleicht möchten Sie den Trollindikator ausblenden.

%Vor%

Sie können auch die Tabellenansicht in die Mitte scrollen, bevor Sie die Tabelle anzeigen, damit das Zurückscrollen einwandfrei funktioniert.

%Vor%

Natürlich würde der Benutzer schließlich den Boden oder die Spitze treffen, wenn er / sie immer wieder scrollte.

    
albertamg 21.04.2011 11:44
quelle
2

Diese Frage wurde bereits gestellt: Implementierung einer zyklischen UITableView Ich kopiere diese Antwort hier, um es einfacher zu machen, weil der Fragesteller meine Antwort nicht angekreuzt hat.

UITableView ist dasselbe wie UIScrollView in der scrollViewDidScroll-Methode.

Es ist also einfach, unendliches Scrollen zu emulieren.

  1. verdoppeln Sie das Array, sodass head und tail zusammengefügt werden, um die ringförmige Tabelle zu emulieren

  2. benutze meinen folgenden Code, um den Benutzer zwischen dem ersten Teil der verdoppelten Tabelle und dem zweiten Teil der verdoppelten Tabelle umzuschalten, wenn sie dazu tendieren, den Anfang oder das Ende der Tabelle zu erreichen.

:

%Vor%

P.S. - Ich habe diesen Code in einer meiner Apps namens NT Time Table (Lite) verwendet. Wenn Sie die Vorschau möchten, können Sie die App auschecken: Ссылка

Wenn Ihre Tabelle manchmal zu kurz sein kann, können Sie am Anfang der oben genannten Methode eine if-Logik hinzufügen, um zu beenden, wenn die Datenanzahl beispielsweise kleiner als 9 ist.

    
Anup Kattel 10.03.2014 00:39
quelle
1

Ich habe das selbst nicht gemacht, aber Sie könnten versuchen, den Ansatz zu verwenden, den Sie mit einem UIScrollView verwenden würden, um das zyklische Scrollen von Ansichten zu implementieren (schließlich ist UITableView eine Unterklasse von UIScrollView).

Ich würde Folgendes tun:

  1. Erstellen Sie eine UITableView mit einer beliebigen Anzahl von Zellen (mindestens 7, aber mehr, um schnelles Scrollen am Ende zu verhindern)
  2. Positionieren Sie Ihre UITableView so, dass die mittlere Zelle sichtbar ist
  3. Pflegen Sie einen Zeiger auf den Index der Zelle, die Sie anzeigen möchten
  4. In Ihrem cellForRowAtIndexPath: Verwenden Sie Ihren Zeiger als einen Offset und fügen Sie die Zeile hinzu, um die Zelle zu erhalten, die Sie wollen
  5. Wenn UITableView sich nicht mehr bewegt (Ihr UITableViewDelegate kann als UIScrollViewDelegate dienen, so dass Sie scrollViewDidEndDecelerating verwenden können). Setzen Sie Ihren Offset-Index auf die aktuelle Zelle, verschieben Sie die Tabellenansicht ohne Animation in die Center-Zelle und laden Sie die Daten neu.

Das Problem, das Sie haben werden, besteht darin, dass der Benutzer, wenn er ohne Unterbrechung weiter scrollt, die Stoßfänger anschlägt, wenn die Anzahl der Zellen in der Tabelle erreicht ist.

Hoffe, das hilft, und bitte posten Sie zurück, wenn Sie das funktioniert und es sieht alles in Ordnung.

Grüße

Dave

    
Magic Bullet Dave 19.04.2011 15:07
quelle
-1

Dies ist sehr schwierig zu implementieren. Werfen Sie jedoch einen Blick auf die ScorlingMadness , die die Demo von verschachtelten (zyklischen) Seiten in einer Scroll-Ansicht zeigt.

>

Sie müssen die ähnliche Art von Trick hier verwenden, da UITableView eine Unterklasse von UIScrollView ist.

    
Sagar 21.04.2011 12:29
quelle