Frage Wann sollte UICollectionView anstelle von UITableView verwendet werden?


ich habe das gefunden UICollectionView ist wie eine verbesserte Version von UITableView in iOS6 eingeführt, aber wann sollte ich wählen UICollectionView Anstatt von UITableView?

Es gibt immer noch Apps mit UITableView, ob UICollectionView kann alles machen UITableView kann tun, warum Leute immer noch benutzen UITableView? Gibt es einen Unterschied in Bezug auf die Leistung?

Vielen Dank!


76
2018-04-15 08:52


Ursprung


Antworten:


Das hängt von den Anforderungen ab. Wie die Anwendungsflüsse bestimmen, welche Art von UI in die Anwendung integriert werden soll.

Die Leute benutzen hauptsächlich die UICollectionview Zum Erstellen von UI-Typen mit mehreren Bildern in einem Raster. Dies würde komplexe Logik verwenden UITableView, aber mit UICollectionviewEs wäre einfach.

Beim Benutzen UICollectionviewSie müssen keine Schaltflächen mit Tags oder anderen Dingen festlegen, indem Sie ausgewählte Werte für Elemente abrufen. Sie können einfach bekommen -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath und in UITableViewDelegate:

`-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath`

Sie erhalten die ausgewählte Zeile anstelle des Elements, also zum Erstellen von Gittern oder modifizierten Elementen mit UICollectionview ist das Beste.

Für die Auflistung Details jedes Artikels, Menschen verwenden UITableView weil es mehr Informationen über jeden Gegenstand zeigt.

Apple-Dokumente:

UICollectionView-Klassenreferenz

Die UICollectionView-Klasse verwaltet eine geordnete Sammlung von Datenelementen und präsentiert sie mithilfe von anpassbaren Layouts. Auflistungsansichten bieten die gleiche allgemeine Funktion wie Tabellenansichten, mit der Ausnahme, dass eine Auflistungsansicht mehr als nur einspaltige Layouts unterstützen kann. Auflistungsansichten unterstützen anpassbare Layouts, mit denen mehrspaltige Raster, gekachelte Layouts, kreisförmige Layouts und viele mehr implementiert werden können. Sie können das Layout einer Auflistungsansicht sogar dynamisch ändern, wenn Sie möchten.

UITableView-Klassenreferenz

In einer Tabellenansicht wird eine Liste von Elementen in einer einzelnen Spalte angezeigt. UITableView ist eine Unterklasse von UIScrollView, mit der Benutzer durch die Tabelle scrollen können, obwohl UITableView nur vertikales Scrollen erlaubt. Die Zellen, die die einzelnen Elemente der Tabelle umfassen, sind UITableViewCell-Objekte; UITableView verwendet diese Objekte, um die sichtbaren Zeilen der Tabelle zu zeichnen. Zellen haben Inhaltstitel und Bilder und können in der Nähe des rechten Randes Zubehöransichten haben. Standardzubehöransichten sind Offenlegungsindikatoren oder Schaltflächen zur Detailanzeige; Ersteres führt zur nächsten Ebene in einer Datenhierarchie und Letzteres führt zu einer Detailansicht eines ausgewählten Elements. Zubehöransichten können auch Rahmensteuerelemente wie Schalter und Schieberegler oder benutzerdefinierte Ansichten sein. Tabellenansichten können in einen Bearbeitungsmodus versetzt werden, in dem Benutzer Zeilen der Tabelle einfügen, löschen und neu anordnen können.


62
2018-04-15 09:02



Verwenden Sie für einfache Listen und Vorwärts / Rückwärts-Navigation UITableView.

Wenn Sie einen hohen Grad an Anpassbarkeit benötigen, verwenden Sie UICollectionView.

Im Allgemeinen ist es in der Softwareentwicklung am besten, den Ansatz auszuwählen, der "die einfachste mögliche Sache" darstellt.


26
2018-04-15 09:00



Hier sind meine Kriterien:

  • Wenn ein UITableView das kann, benutze es

  • Wenn ein UITableView viel Code benötigt, um es zu tun oder überhaupt nicht, verwenden Sie UICollectionView.

Sie müssen die Einschränkungen von UITableView beachten, bevor Sie eine Entscheidung treffen: Es ist eine einzelne Spalte. Und Sie können nur die Zellen, aber nicht Abschnitt Hintergründe und so anpassen. Also, wenn Sie eine gerade Liste von Dingen ohne zusätzliche Extras haben - das sieht im Grunde aus wie eine Standard-iOS-Ansicht - dann verwenden Sie UITableview. Verwenden Sie UICollectionView, wenn Sie benutzerdefinierte Einfügungen oder einen Rahmen um jeden Abschnitt haben.

Ich denke eigentlich über UICollectionView für alle Dinge nach, weil es sehr teuer ist, wenn Sie mit der Entwicklung Ihrer Ansicht als Tabellenansicht beginnen und später herausfinden, dass es nicht die eine Sache tun kann, die Sie dafür benötigen. Erfahrung aus erster Hand;)

Bearbeiten Sie nach noch mehr Erfahrung mit den beiden: Missachten Sie den letzten Absatz. UICollectionView benötigt eine Menge Standardcode, damit es wie ein UITableView funktioniert. Verwenden Sie UICollectionView nur, wenn es wirklich benötigt wird. ;)


24
2017-08-22 11:51



Aus meiner Sicht besteht der Hauptunterschied zwischen collectionView und tableView darin

TABLEVIEW -> Liste der Elemente in nur einer Spalte anzeigen.

COLLECTION-VIEW -> Liste der Artikel in mehreren Spalten anzeigen.

Hoffe es wird dir helfen.


10
2018-04-15 16:09



Wenn Sie sich für UITableView für iPhone entscheiden, stellen Sie sicher, dass Sie zuerst Ihre iPad-Strategie berücksichtigt haben. Wenn Sie ein iPad-spezifisches Layout wünschen, möchten Sie dieses einspaltige Layout möglicherweise zu einem Raster machen.


10
2018-04-07 21:40



Obwohl es nicht erforderlich ist, verwende ich immer eine Sammelansicht. So kann ich leicht anpassen, wie meine Kollektionen für unterschiedliche Auflösungen präsentiert werden. Ein Plus ist, dass es bereit ist, beim Refactoring in der Zukunft schnell neue Arten von Zellen hinzuzufügen.

Ich sehe keinen Sinn für Tabellenansichten. Es ist sehr einfach, eine Sammlungsansicht zu verwenden, um eine Tabelle darzustellen. IMO.


5
2017-12-13 22:17



Beides hängt von den Anforderungen ab. Table Views unterstützen auch verschiedene Bearbeitungsszenarien. Diese Unterstützung wurde nicht in den Collection View-Klassen implementiert. Wenn Sie von einer Tabellenansicht konvertieren, die auf diesen Methoden beruht, sollten Sie in der Sammlungsansicht ein wenig schweres Heben hinnehmen. Sammlungsansicht-Header können überall in der Ansicht platziert werden. und UITableView müssen keine Schaltflächen mit Tags oder anderen Dingen festlegen, indem Sie Werte für ausgewählte Elemente abrufen.


2
2018-06-18 05:31



Es hängt vollständig davon ab, wie Ihre Daten angezeigt werden. Wie bereits oben erwähnt, wenn Sie nur einzelne Datenmengen benötigen und diese auch nicht komplex sind, gehen Sie vor UITableView sonst verwenden UICollectionView.

UICollectionView ist benutzerfreundlich.

Wenn Sie mit mehreren Zellenhöhen oder so handeln, dann gehen Sie für UICollectionView.


1
2018-04-03 06:51



Aus meiner persönlichen Erfahrung sollten die beiden Elemente nur lose miteinander verglichen werden.

Tabellenansicht

Ein TableView ist ein UI-Element, das Daten in einem Listenformat anzeigt. Es gibt bestimmte Funktionen, die standardmäßig in einem UITableView enthalten sind, wie zum Beispiel:

  • Zubehöransicht
  • Zellenauswahlstil
  • Bearbeitungsstil (Schaltflächen löschen und bearbeiten).

Die obigen Elemente verbessern die Benutzerfreundlichkeit von Daten beim Anzeigen und Interagieren in einem Listenformat. Wie zum Beispiel E-Mails anzeigen.

Auflistungsansicht

Ein CollectionView ist ein UI-Element, das zum Anzeigen von Inhalt mit einem benutzerdefinierten Layout (normalerweise alles, was keine Liste ist) entworfen wurde. CollectionViews verbessert die Funktionalität der Anzeige von Daten in vollständig angepassten Layoutstilen und dynamisch wechselnden Layouts im laufenden Betrieb. Einige Beispiele sind:

  • Horizontale Listen
  • Fotogalerien
  • Miniaturansichten
  • Karussells
  • Zifferblätter
  • Elemente auf einer Karte auslegen
  • etc.

CollectionViews ermöglichen auch mehrere Auswahlen.

Fazit

Wie Sie oben sehen können, haben beide völlig unterschiedliche Anwendungsfälle und wurden entwickelt, um die Entwicklung und Verwendbarkeit ihrer eigenen spezifischen Datensätze zu verbessern.

Wenn Sie etwas in einem Listenstil mit den folgenden Interaktionen anzeigen möchten: - Hinzufügen - Löschen - Nachbestellung Dann wird ein UITableView diesen Prozess vereinfachen, indem die Unterstützung direkt aus der Box bereitgestellt wird.

Sonst sollten Sie die Vorteile von CollectionView nutzen, da Sie mehr Flexibilität haben.


1
2018-01-07 20:08