Frage

Gibt es eine Möglichkeit, ein UITableView zu sagen, alle Zeilen vorzuladen?

Der Tableview soll mehrere Kommentare zeigen (bis zu 80 Kommentare).

Also meine CommentCell einen Setter verwendet die Zelle einen spezifischen Kommentar anzupassen.

-(void)setComment:(Comment *)newComment {
 if (newComment != comment) {
     [comment release];
        comment = [newComment retain]; 
       /*
        * set the cells view variables here
        */
    }
}  

Diese spezifische Setter dauert eine ganze Bündel Ressourcen zu verarbeiten und Scrollen ein bisschen laggy wird.

Ich verwende einen Kommentar spezifischen reuseIdentifier anstelle einer statischen cellIdentifier beim Aufruf

dequeueReusableCellWithIdentifier:

, um sicherzustellen, dass „newComment“ ist gleich den alten „Kommentar“.
Und in der Tat ist dies tut große Arbeit, wenn sie über Zellen Scrollen, die bereits geladen wurden.

Aber wenn zum ersten Mal durch die Kommentare Scrollen, es hinkt immer noch wie die Hölle.

Was mich zu meiner Frage führt:
Gibt es eine Möglichkeit, die Tableview zu sagen, alle Zellen vorzuladen? (Was ich bezweifle)
oder in Muss ich meinen eigenen Cache zu implementieren, anstatt sich auf „dequeueReusableCellWithIdentifier:“

War es hilfreich?

Lösung

Beachten Sie, dass Ihr Kommentar spezifischer reuseIdentifier könnte das sein, was alles verursacht, langsam zu gehen (oder zumindest, es ist nicht zu helfen). Der Grund, warum wir reuseIdentifier für UITableViewCells verwenden ist, weil, wenn Sie versuchen, jedes Mal eine neue Zelle man einen braucht zuzuteilen es nicht so performant ist, als ob Sie gerade Wiederverwendung ein, die bereits durchgeführt wurde.

Ich würde empfehlen, Pre-Computing Ihre Kommentare, so dass Sie nur Eigenschaften der Zellen festlegen können und die Wiederverwendung von Zellen, nachdem sie aus dem Tableview blättern.

Andere Tipps

Nein, müssen Sie Ihre Daten in Ihrer dataSource vorzuladen. Setzen Sie einfach alles, was Sie in einem Array müssen und die Tabellenzellen aus dieser Reihe von vorinstallierten Objekten füllen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top