2009-03-19 8 views

Antwort

34

Wenn die Methode reloadData aufgerufen wird, werden die Daten aktualisiert, sobald die Methode aufgerufen wird. Es wartet nicht auf das Scrollen der Tabelle. Stellen Sie sicher, dass die Datenquelle (Array oder Wörterbuch oder wo auch immer Sie die Werte gespeichert haben) geändert wird, bevor Sie reloadData aufrufen.

+7

scheinen nicht mit einer benutzerdefinierten Tabelle Ansicht Zelle zu arbeiten. Die Daten ändern sich erst, wenn die Tabellenansicht gescrollt wird. Vielleicht habe ich einen Fehler in meiner benutzerdefinierten Tabellenansicht Zelle Methode. – Genericrich

+1

Ich benutze auch eine benutzerdefinierte Zelle. Funktioniert großartig für mich. Sie müssen etwas im Code verpasst haben. Kannst du den Code posten? Vielleicht können wir etwas finden – lostInTransit

+2

Wenn Sie eine nib-Datei verwenden, um Ihre Ansicht zu entwerfen, vergessen Sie nicht, die Tabelle, die Sie aufrufen, reloadData im Code an die Tabelle in Ihrer Schreib-Spalte anzuschließen. Es passiert leicht, da Sie auch Delegate und Datenquelle verbinden müssen. –

33

Aktualisieren Sie die Daten aus dem Hauptthread? Wenn ja, müssen Sie die reload Methode rufen Sie die folgende Methode:

- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait

Also für eine Tableview wäre es:

[tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];

19

einfach ein 2013-Update, sollten Sie auch sein der Lage, die Daten nur so lange zu laden, wie Sie

dispatch_async(dispatch_get_main_queue(), ^{ 
    [self.tableView reloadData]; 
}); 

GCD ist genial nutzen!

+0

Dies sollte die akzeptierte Antwort sein. Wenn Sie auf einfache reloadData gehofft haben, um die Benutzeroberfläche tatsächlich ohne jegliche Interaktion zu aktualisieren, dann ist dies der richtige Weg. – Markus

+0

Können Sie weiter erklären, warum es auf dem Hauptthread ausgeführt werden sollte? – jchnxu

-5

Der folgende Code Hilfe Ihnen Tabelle neu zu laden, während Sie, dass suchen:

[self.tableView reloadData]; 
+4

Schlechte Vorgehensweise, um diese Methoden aufzurufen – AlexeyVMP