UITableView Flackern mit UIRefreshControl

8

Ich habe ein UITableView mit UIRefreshControl definiert in der viewDidLoad: Methode eines UIViewController wie unten:

%Vor%

Ich benutze Self-Sizing-Zelle, um die Zellendaten zu aktualisieren. Beim erneuten Laden der Daten flackert UITableView . Gibt es eine Möglichkeit, dies zu vermeiden?

Bearbeiten Ich habe die Video -Datei für eine Beispieldemo verknüpft. Das UITableView beim Neuladen von Daten flackert. Ich verwende das automatische Layout, um die dynamischen Zellenhöhen zu aktualisieren.

Hier ist ein Beispiel Code, der dieses Problem reproduzieren kann. Das UITableView sollte zur Aktualisierung herangezogen werden. Die Tabellenansicht wird in der Hauptwarteschlange neu geladen. Die Größe der Zelle wird mit automatischem Layout geändert.

Siddharthan Asokan 19.05.2015, 02:27
quelle

6 Antworten

1

Ich schätze, das Problem ist die Verwendung von geschätztHeight & amp; UITableViewAutomaticDimension zusammen mit den reloadData von uitableview. Dies wurde hier

gemeldet

Die Verzögerung würde funktionieren, aber es ist immer noch nicht der richtige Weg, um es zu erreichen, es sei denn, Sie wollen eine hackische Arbeit.

    
DesperateLearner 28.05.2015, 08:04
quelle
10

Ich habe das gleiche Problem heute und ich habe es geschafft, das Problem mit CATransaction zu lösen, hier ist ein Code-Snippet in Swift, ausgeführt in einem UITableViewController:

%Vor%     
jhoffman 21.01.2016 17:16
quelle
4

Das Problem ist, dass Sie -reloadData und -endRefreshing zusammen aufrufen. Beide möchten die Ansicht aktualisieren. Sie müssen sie ein wenig trennen.

Eine dieser Optionen funktioniert je nachdem, wo die Zellen aktualisiert werden sollen:

%Vor%

Wahrscheinlich brauchen Sie weniger Verzögerung mit der ersten Option. Sogar 0.0 Sekunden schienen in Ihrem Beispielcode zu funktionieren. Das ist genug, um die Animation -endRefreshing auf der nächsten Bildschirmaktualisierung zu erhalten.

    
Dave Batton 22.05.2015 18:44
quelle
0
%Vor%     
Bevan 26.05.2015 10:36
quelle
0

Vielleicht ruft reloadData und endRefreshing das Flimmern auf, also änderte ich den Code ein wenig und entfernte den Dispatch-Block, der den Wechsel löschte

%Vor%     
NSDumb 27.05.2015 11:31
quelle
0

Hast du es versucht?

%Vor%

anstelle von:

%Vor%     
0yeoj 28.05.2015 06:37
quelle