2016-09-12 1 views
0

Ich verwende eine UITableViewController. Die UITableView präsentiert 11 benutzerdefinierte Zellen. 10 davon sind dynamisch, einer ist statisch.UITableView.visibleCells() gibt nicht alle Zellen zurück

Zählen dennoch die Reihen entweder mit:

let cells = self.tableView.visibleCells as? [chatUebersicht] 

oder

for (var row = 0; row < gruppenNamen.count; row++) {  
    if let cell:chatUebersichtCell = table.cellForRowAtIndexPath(NSIndexPath(forRow: row, inSection: 0)) as? chatUebersichtCell {    
    cells.append(cell) 
    } 
} 

die richtige Anzahl zurückkehrt. Es gibt die Nummer 5 jedes Mal zurück. Ich denke, es gibt ein Problem mit dem Vorladen der Zellen. Gibt es einen Weg, dies zu überwinden?

+0

Passen alle 11 Zellen gleichzeitig auf den Bildschirm? Es ist wahrscheinlich, dass nur 5 Zellen gleichzeitig auf dem Bildschirm sichtbar sind. – Paulw11

+0

Was möchten Sie erreichen? Warum brauchen Sie die Zellen im separaten Array? – VojtaStavik

+0

Es sind nur 5 Zellen gleichzeitig sichtbar. Ich verstehe, dass visibleCells diese zählt. Aber was ist für das andere Array? @ Paulw11 – JVS

Antwort

1

visibleCells gibt nur die wiederverwendbaren Zellen zurück, die Sie gerade sehen können. Das ist das Schöne an einer UITableView - Es gibt keine Instanz einer Zelle für jede Datenzeile.

Sie sollten erneut bewerten, was Sie zu tun versuchen, und bestimmen, ob es sich um einen Präsentationsvorgang handelt, oder um etwas, das mit der Datenquelle der Tabellenansicht arbeiten kann.

Verwandte Themen