ios Quand utiliser UICollectionView au lieu de UITableView?




objective-c (10)

Selon mon point de vue, la principale différence entre collectionView et tableView est que

TABLEVIEW -> afficher la liste des éléments dans une seule colonne.

COLLECTION-VIEW -> afficher la liste des éléments dans une colonne multiple.

J'espère que cela vous aidera.

J'ai trouvé que UICollectionView est comme une version améliorée de UITableView introduit dans iOS6, mais quand devrais-je choisir UICollectionView au lieu de UITableView ?

Il y a encore des applications utilisant UITableView , si UICollectionView peut faire tout ce que UITableView peut faire, pourquoi les gens utilisent encore UITableView ? Y a-t-il une différence en matière de performance?

Merci!


Answer #1

En fonction de nos besoins, nous choisissons TableView ou CollectionView.

Exemple:

Pour les contacts téléphoniques, tableView est la meilleure option.

Pour la galerie de photos, la vue de collection sera la meilleure option.


Answer #2

Pour les listes simples et les navigations avant / arrière, utilisez UITableView .

Si vous avez besoin d'un degré élevé de personnalisation, utilisez UICollectionView .

De manière générale, dans le développement de logiciels, il est préférable de choisir l'approche qui représente "La chose la plus simple possible".


Answer #3

D'après mon expérience personnelle, les deux éléments ne devraient être comparés que vaguement.

TableView

Un TableView est un élément d'interface utilisateur conçu pour afficher des données dans un format de liste. Il y a certaines fonctionnalités qui viennent en standard avec un UITableView, tels que:

  • Vue accessoire
  • Style de sélection de cellule
  • Editting Style (Supprimer et éditer les boutons).

Les éléments ci-dessus améliorent la facilité d'utilisation des données lors de l'affichage et de l'interaction dans un format de liste. Comme l'affichage des emails.

CollectionView

Un objet CollectionView est un élément d'interface utilisateur conçu pour afficher du contenu en utilisant une mise en page personnalisée (généralement tout ce qui n'est pas une liste). CollectionViews améliore la fonctionnalité d'affichage des données dans des styles de mise en page entièrement personnalisés et permet également de modifier les mises en page de manière dynamique à la volée. Certains exemples sont:

  • Listes horizontales
  • Galeries de photos
  • Vues en miniature
  • Carrousels
  • Dials
  • Disposer des éléments sur une carte
  • etc.

CollectionViews permettent également plusieurs sélections.

Conclusion

Comme vous pouvez le voir ci-dessus, les deux ont des cas d'utilisation complètement différents et sont conçus pour améliorer le développement et la convivialité de leurs propres ensembles de données spécifiques.

Si vous envisagez d'afficher quelque chose dans un style de liste avec les interactions suivantes: - Ajout - Suppression - Réorganisation Ensuite, UITableView va simplifier ce processus en fournissant le support directement hors de la boîte.

Quoi que ce soit d'autre, vous devriez tirer parti des avantages de CollectionView, car vous avez plus de flexibilité.


Answer #4

J'ai eu ce problème dans mon projet actuel. Lequel utiliser? Dans mon cas, c'était vraiment simple. J'avais besoin des deux. J'avais besoin de ma vue pour ressembler à UITableView et aussi pour changer son changement / disposition. Ainsi, UICollectionView a été utilisé. J'utilise aussi UITableView partout où je n'ai pas besoin de personnalisation supplémentaire. Depuis UiTableView est livré avec une mise en page par défaut qui comprend des images et du texte - je l'utilise pour plus de simplicité.


Answer #5

Cela dépend totalement de la façon dont vos données seront affichées. Comme mentionné ci-dessus, si vous n'avez besoin que d'un seul ensemble de données et que cela n'est pas complexe, UITableView pour UITableView sinon utilisez UICollectionView .

UICollectionView est convivial pour la personnalisation.

Si vous avez affaire à plusieurs hauteurs de cellules, allez à UICollectionView .


Answer #6

Cela dépend des exigences. Le flux de l'application détermine le type d'interface utilisateur à intégrer dans l'application.

Les utilisateurs utilisent principalement la vue UICollectionview pour créer des types d'interfaces utilisateur avec plusieurs images affichées dans une grille. Cela aurait une logique complexe en utilisant UITableView , mais avec UICollectionview , ce serait facile.

Lorsque vous utilisez UICollectionview , vous n'avez pas besoin de définir des boutons avec des balises ou d'autres choses en obtenant des valeurs d'éléments sélectionnés. Vous pouvez simplement obtenir -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath et UITableViewDelegate :

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

Vous obtenez la ligne sélectionnée à la place de l'élément, donc pour créer une grille ou des éléments modifiés, UICollectionview vaut mieux utiliser UICollectionview .

Pour les détails d'inscription de chaque élément, les utilisateurs utilisent UITableView car ils affichent plus d'informations sur chaque élément.

Apple Docs:

Référence de la classe UICollectionView

La classe UICollectionView gère une collection ordonnée d'éléments de données et les présente en utilisant des dispositions personnalisables. Les vues de collection fournissent la même fonction générale que les vues de table, sauf qu'une vue de collection peut prendre en charge plus que des mises en page à une seule colonne. Les vues de collection prennent en charge des dispositions personnalisables pouvant être utilisées pour implémenter des grilles multi-colonnes, des dispositions en mosaïque, des dispositions circulaires et bien d'autres. Vous pouvez même modifier la disposition d'une vue de collection de manière dynamique si vous le souhaitez.

Référence de la classe UITableView

Une vue de table affiche une liste d'éléments dans une seule colonne. UITableView est une sous-classe de UIScrollView, qui permet aux utilisateurs de faire défiler la table, bien que UITableView autorise uniquement le défilement vertical. Les cellules comprenant les éléments individuels de la table sont des objets UITableViewCell; UITableView utilise ces objets pour dessiner les lignes visibles de la table. Les cellules ont un contenu - des titres et des images - et peuvent avoir, près du bord droit, des vues accessoires. Les vues accessoires standard sont des indicateurs de divulgation ou des boutons de divulgation de détail; le premier conduit au niveau suivant dans une hiérarchie de données et le second mène à une vue détaillée d'un élément sélectionné. Les vues accessoires peuvent également être des contrôles d'infrastructure, tels que des commutateurs et des curseurs, ou peuvent être des vues personnalisées. Les vues de table peuvent entrer dans un mode d'édition dans lequel les utilisateurs peuvent insérer, supprimer et réorganiser des lignes de la table.


Answer #7

Voici mes critères:

  • Si un UITableView peut le faire, utilisez-le

  • Si un UITableView a besoin de beaucoup de code pour le faire ou ne peut pas le faire du tout, utilisez UICollectionView.

Vous devez prendre en compte les restrictions sur UITableView avant de prendre une décision: Il s'agit d'une seule colonne. Et vous pouvez seulement personnaliser les cellules, mais pas les arrière-plans de section et autres. Donc, si vous avez une liste directe de choses sans fioritures supplémentaires - cela ressemble à une vue iOS standard de bog, fondamentalement - alors utilisez UITableview. Si vous avez des encarts personnalisés ou une bordure autour de chaque section, utilisez UICollectionView.

En fait, je considère UICollectionView pour tout simplement parce que c'est très cher quand vous commencez à développer votre vue sous forme de tableau, puis découvrez plus tard qu'il ne peut pas faire une chose que vous avez besoin de faire. Expérience de première main;)

Modifier après encore plus d'expérience avec les deux: Ne tenez pas compte de ce dernier paragraphe. UICollectionView nécessite beaucoup de code standard pour le faire fonctionner comme un UITableView. Utilisez UICollectionView uniquement lorsque vous en avez vraiment besoin. ;)


Answer #8

Les deux sont dépend des exigences. Les vues de table prennent également en charge une variété de scénarios d'édition. Ce support n'a pas été implémenté dans les classes Vue de la collection. Si vous convertissez à partir d'une vue Table qui repose sur ces méthodes, attendez-vous à effectuer un léger levage supplémentaire dans la vue Collection. Les en-têtes de section Vue de collection peuvent être placés n'importe où dans la vue. et UITableView n'a pas besoin de définir des boutons avec des balises ou d'autres choses en obtenant des valeurs d'éléments sélectionnés.


Answer #9

Si vous choisissez UITableView pour iPhone, assurez-vous d'avoir préalablement pris en compte votre stratégie iPad. Si vous souhaitez une mise en page spécifique à l'iPad, vous pouvez souhaiter que cette mise en page à colonne unique devienne une grille.







uicollectionview