2014-04-08 24 views
10

In meiner App sollte ich eine Ansicht mit einer Menge Informationen erstellen; diese Informationen in 4 Abschnitt unterteilt sind, kann jeder Abschnitt Text enthält, Bilder Listen ecc ...IOS: Wahl eines UIScrollView oder eines UITableView

dies ist ein brutales Beispiel ...

enter image description here

Jetzt fragwürdige ich bin, welche Art der Lösung zu übernehmen.

In meiner schnellen Meinung ist eine große scrollview schwierig zu organisieren. Und eine große Tabellenansicht mit Abschnitt ist kompliziert mit Code zu organisieren ... Was sind Ihre Ideen?

+0

Definitiv Tabellenansicht ... Speicherprobleme –

+0

ein TableView wäre besser dafür geeignet – meda

+0

Siehe meine Bearbeitung über 'UICollectionView' –

Antwort

4

Sie mit UITABLEVIEW, einfach zu handhaben leicht zu verstehen, mehr Wiederverwertbarkeit und gute Speicherverwaltung

Wenn Sie gehen sollen viel Inhalt zum Durchblättern, ein UITableView könnte Ihnen helfen, Speicherverbrauch zu halten.

Wenn eine Zelle außer Sichtweite scrollt, wird sie aus der Ansicht entfernt und für die spätere Verwendung (-dequeueReusableCellWithIdentifier:) von der UITableView gespeichert. Wenn der Speicher knapp wird, glaube ich, dass diese unsichtbaren Ansichten (UITableViewCells) freigegeben werden. Dies bedeutet im Wesentlichen, dass Ihre App nur Ansichten im Speicher behält, die tatsächlich sichtbar sind. Weitere werden zwischengespeichert, können jedoch bei Bedarf jederzeit gelöscht werden.

Wenn Sie viele Daten anzeigen und alles zu einer UIScrollView hinzufügen, wird möglicherweise viel mehr Speicher verwendet als bei Verwendung einer UITableView. Sie müssen möglicherweise einen ähnlichen Mechanismus implementieren wie UITableView, um unsichtbare Ansichten zu entfernen (und möglicherweise freizugeben).

So können Sie im Grunde den gleichen Effekt erzielen, aber eine UITableView macht eine Menge von dieser Arbeit für Sie bereits.

Wenn Sie viele Daten anzeigen (wahrscheinlich mehr als zwei Bildschirme voll), würde ich in Richtung UITableView neigen.

12

UITableView ist für "wiederverwendbare" Zellen optimiert, die zum Scrollen in langen Listen geeignet sind. Ein weiterer Vorteil der Verwendung einer UITableView, wie andere vorgeschlagen, ist, dass es nur sichtbare Zellen instanziiert, so Speicherverbrauch reduziert wird.

In Ihrem Fall, da Ihr Inhalt spezifisch und nicht wiederholend aussieht, würde ich vorschlagen, eine einfache UIScrollView zu verwenden, die einfacher zu verwenden ist. (UITableView erbt von UIScrollView btw)

Wenn der Speicher/Leistung ein Problem ist, dann UITableView bevorzugen oder einfach Ihre eigene Logik schreiben, um nur Ansichten instanziiert, die sichtbar sind (von scrollOffset zum Beispiel unter Verwendung)

EDIT:

In zweiter Linie, in Ihrem Fall ist UICollectionView sicherlich ein besserer Kandidat als UITableView. Vor allem, wenn Sie einen Tag planen so etwas wie ein 2 Spalten-Layout auf dem iPad zu tun ...

1

Diese Art der Sache ist sehr einfach in Interface Builder jetzt mit statischen Zellen zu erstellen; Sie können die gesamte Schnittstelle visuell gestalten und Ausgänge für die Zellen (und/oder ihre Unteransichten) einrichten, um den Inhalt in Ihrem View-Controller zu konfigurieren.

Verwandte Themen