Frage

Ich bin eine iOS-Anwendung entwickeln und einige Probleme habe zu entscheiden, wie ein Problem zu nähern.

Ich bin mit zwei UITableViewControllers unterschiedliche Ansichten derselben Daten anzuzeigen. Eine davon ist eine Master-Liste, und der andere enthält nur Gegenstände, die als „Favorit“ markiert sind. Auch sind die Elemente mit variabler Höhe, so dass ich „heightForRowAtIndexPath“ bin mit der Höhe für jedes Element anzuzeigen. Das Problem ist die Geschwindigkeit, wenn ich von einer Ansicht zu einem anderen wechseln, muss sie aktualisiert werden, um die Änderungen in dem anderen (markiert Favoriten / unfavourite) aus angezeigt werden.

  

Lösung 1 :

     

Neu laden die Daten jedes Mal, wenn eine Tabellenansicht sichtbar wird. Dies funktioniert nicht gut, denn obwohl die Datenanzeige mit verzögertes Laden ist, die „heightForRowAtIndexPath“ für jedes Element aufgerufen wird, bevor alle Daten geladen wird, und seine langsam. auf meinem iPhone 4 eine Liste von etwa 300 Artikeln dauert etwa vier Sekunden, um Last, auch wenn die Höhenwerte zwischengespeichert werden (der Engpass die Höhe bewirbt, Abrufen es nicht).

  

Lösung 2 :

     

Sie manuell die Tabellen manipulieren, wenn Änderungen vorgenommen werden. Ich habe nicht versucht, aber es wäre Buggy wahrscheinlich. Ihre Gedanken?

  

Lösung # 3 :

     

Mit einem Benachrichtigungstyp System die andere Tabelle bei Änderungen zu Artikeln benachrichtigen, dass zur Zeit geladen werden könnte. Ich habe nicht versucht, weil es über die Spitze scheint und möglicherweise nicht an allen.

Kennt jemand eine einfache Möglichkeit, zwei Ansichten derselben Daten zu zeigen?

Keine korrekte Lösung

Andere Tipps

Sie können nachladen n Zeilen mit reloadRowsAtIndexPaths: withRowAnimation. Ich habe es nie, aber ich denke, es ist da, weil es schneller ist, so dass Sie es ausprobieren möchten.

Auf der heightForRow: Dingen, kann ich in der Apple-Dokumentation zu lesen nicht vergessen, dass diese Funktion in die Tat für die Leistung ist ein Killer. Vielleicht könnten Sie die maximale Höhe der Reihen nehmen und festgelegt, dass in der UITableView.rowHeight?

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