2016-08-03 23 views
0

Ich möchte die Informationen über einen Benutzer in der Tabellenansicht anzeigen, einige Informationen sind nicht obligatorisch, so dass einige Zellen möglicherweise nicht in der Tabellenansicht sind. Ich habe die Idee, ein Array mit Zellen zu verwenden, weil ich maximal 10 Zellen haben kann, und dies wird die Logik vereinfachen, wenn ich Standard-Apple-Verhalten verwenden muss, muss ich viele Prüfungen und eine komplizierte Logik für Tabellenansicht Datenquelle und haben delegieren. Es ist in Ordnung, die Zellen zu initialisieren, sie in ein Array zu setzen und sie danach anzuzeigen?Ist es in Ordnung, UITableViewCells in einem Array zu speichern?

+0

initialisieren Sie die Zellen, legen Sie sie in ein Array, bedeutet, Sie machen die Schleife und speichern Sie die Zellen im Array –

+0

Ich kann mir vorstellen, dass das funktioniert, wenn alle Zellen statisch sind. Das heißt, Sie verlassen sich nicht auf den Cache der Tabellenansicht oder ihre Wiederverwendungslogik. –

+0

Ich würde lieber eine Methode erstellen, die Zellen aus Daten erstellt, und nur die Daten im Array speichern – Daniel

Antwort

3

Sicher. Für eine kleine Anzahl von Zellen wie dieser ist das in Ordnung. Sie werden natürlich immer noch die Datenquelle benötigen, aber es kann nur Zellen aus einem Array ziehen, wenn das für Sie gut funktioniert.

Sie könnten auch interessiert sein, einfach eine Tabellenansicht mit statischen Zellen in Ihrem Storyboard zu verwenden. Sie können dann Zellen ausblenden, die Sie nicht möchten. Siehe UITableView set to static cells. Is it possible to hide some of the cells programmatically?

+0

Dank für die Antwort, ich dachte, dass dieser Ansatz den Lebenszyklus von UITableViewCell in mancher Hinsicht brechen kann. –

+0

Nein; Solange Sie nicht 'dequeueReusableCell' aufrufen, sollten Sie keine Probleme haben. Erstellen Sie die Zellen nur explizit. –

+0

(Auch das ist ein bisschen stark, Sie können fast sicher 'dequeueReusableCell' verwenden, um sie anfänglich zu erstellen, wenn das bequem ist. Rufen Sie das nicht in' cellforItemAtIndexPath' auf.) –

Verwandte Themen