Ich habe eine UITableView
mit ± 10 verschiedenen UITableViewCells
, um vollständige Informationen über ein Objekt anzuzeigen (Beschreibungszelle, Fotozelle usw.). Also, wenn UITableView
geladen ist, brauche ich UITableView
Zellen nicht wiederverwendet werden. Wäre die Leistung nicht besser, wenn ich irgendwie UITableViewCells
speichern und verhindern würde, dass cellForRowAtIndexPath
aufgerufen wird? Wenn ja, wie kann man dasselbe Verhalten erreichen?UITableView mit einer begrenzten Anzahl von Zellen
Antwort
Als Erstes können Sie nicht verhindern, dass cellForRowAtIndexPath aufgerufen wird, wenn Sie UITableView verwenden. Es ist eine UITableViewDataSource-Funktion und es ist keine optionale Funktion. Andernfalls können Sie Ihre Tabellenansicht nicht füllen.
Was Sie tun können, ist Switch-Case für indexpath.row in CellForRowAtIndexPath verwenden und erforderliche Zelle zurückgeben.
yeap. das ist, wie ich das tue, die Frage ist, ob Scroll-Leistung besser wäre, wenn sie Zellen irgendwie speichern anstatt sie wiederzuverwenden. – JuicyFruit
Wenn Sie beim Anzeigen der Zellen oder beim Ausführen von Netzwerkaufrufen keine komplexe Operation ausführen, sollte die Leistung beeinträchtigt werden. und die Zellen werden nur dann wiederverwendet, wenn dieselbe Zelle an zwei verschiedenen Positionen/indexpath in der Tabellenansicht aufgerufen wird, die nicht gleichzeitig angezeigt werden können (ohne Scrollen). – rv7284
Kommentar ist eine Antwort, danke. – JuicyFruit
Sie könnten versuchen, Prototyp Zelle im Storyboard zu erhöhen. Jede Zelle weist eine neue Zellenkennung zu und Sie müssen das Array mit der ID, die zu ihrem Index passt, im Storyboard behalten.
Ihre cellForRowAtIndexPath wird reduziert:
- (UITableViewCell *)tableView:(UITableView *)tableView1 cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView1 dequeueReusableCellWithIdentifier:[cellIdArray objectAtIndex:indexPath.row] forIndexPath:indexPath];
return cell;
}
Hinweis: cellForRowAtIndexPath Methode wird immer aufgerufen. Im obigen Fall können Sie Ihre Daten selbst im Storyboard ablegen. Überprüfen Sie ähnliche Fälle unter https://www.appcoda.com/sidebar-menu-swift/
- 1. Münze Änderung mit begrenzten Anzahl von Münzen
- 2. Zellen von uitableview vorladen
- 3. UITableView dynamisch gruppiert Zellen
- 4. UITableView Höhe basierend auf der Anzahl der Zellen
- 5. Kreuzen auf statische Zellen UITableView
- 6. Verschieben von Zellen in UITableView
- 7. Fill NA in einer Zeitreihe nur zu einer begrenzten Anzahl
- 8. Wie Hintergrund einer Ansicht (UITableview) mit dynamischen Zellen festlegen?
- 9. Zwei Zellen in einer Zeile in UITableView
- 10. UITableView Zellen können nicht
- 11. Zwei Zellen in einer Reihe, UITableview
- 12. UITableview mit mehr als einer benutzerdefinierten Zellen mit Swift
- 13. UITableView mit Zellen mit variabler Breite
- 14. uitableview Laden der Zellen mit dem Inhalt vorheriger Zellen
- 15. Wie entfernt man Zellen direkt von UITableView?
- 16. Positionieren von UIImageViews in UITableView-Zellen
- 17. UITableView Zeilenhöhe nach dem Laden von Zellen
- 18. iPhone UITableView Zellen bleiben ausgewählt
- 19. Erkennen von Tap & Hold in UITableView-Zellen
- 20. Festlegen von statischen Zellen in uitableview programmgesteuert
- 21. Wie erstellt man UITableView-Zellen basierend auf einer Bedingung?
- 22. Sortieren 2 verknüpfte Liste von 50000 Nummern mit einer begrenzten Anzahl von Operationen
- 23. UITableView Zellen getrennt und mit abgerundeten Ecken
- 24. YouTube UITableView-Zellen mit UIWebView blockierendem Thread?
- 25. Selbst Sizing Zellen machen UITableView
- 26. Vergleichen von Zellen in einer variablen Anzahl von Spalten
- 27. FIFO Karte mit begrenzten Elementen
- 28. Flushing UITableView Warteschlange für Zellen
- 29. UITableView Hintergrundbild für alle Zellen
- 30. Hinzufügen von verschiedenen Arten von Zellen zu UITableView
Es gibt eine statische Zelle, die für tableviewController verwendet werden kann. mach ein paar RND drauf. –