web-dev-qa-db-fra.com

Quelle est la différence entre UIStackView et UICollectionView dans Xcode 7?

Quelle est la différence entre une UIHorizontalStackView et une vue de collection (également une vue de pile verticale)?

Une collectionView ne peut-elle pas être horizontale et verticale? Pourquoi les gens utiliseraient les deux?

Qu'est-ce qu'une UIStackView fait qu'une vue de collection ne peut pas?

10
nachshon f
  1. UICollectionView est comme une grille, UIStackView ne concerne qu'une dimension: verticale ou horizontale. 

UICollectionView est similaire à UITableView, mais il prend en charge plus que des dispositions à une colonne.

Les vues de collection offrent la même fonction générale que les vues de tableau , À la différence qu’une vue de collection peut prendre en charge plus de la seule présentation de Colonnes. Les vues de collection prennent en charge les présentations personnalisables Qui peuvent être utilisées pour mettre en œuvre des grilles à colonnes multiples, des présentations en mosaïque, des présentations circulaires , Etc. Vous pouvez même modifier la disposition d'une vue de collection De manière dynamique si vous le souhaitez.

contre

La classe UIStackView fournit une interface simplifiée pour la présentation de Une collection de vues dans une colonne ou une ligne.

  1. Pour moi, avec StackView, vous bénéficiez de la fonctionnalité "AutoLayout", par exemple: vous mettez 4 vues dans la pile, ce composant décidera comment ces vues seront présentées à l'écran, en fonction de leur taille.
9
Duyen-Hoa

Oui, une vue de collection utilisant une disposition de flux ou une disposition personnalisée peut être verticale ou horizontale. Lors de l'utilisation d'une disposition de flux, il est assez facile de configurer une seule colonne d'éléments dont la taille de contenu intrinsèque est définie.

La vue de pile est fondamentalement une version ajustée et spécialisée de cela. Il enlève toute la flexibilité de la disposition de la collection et vous offre en retour une interface simplifiée.

Selon votre cas d'utilisation, vous n'aurez peut-être pas besoin de la complexité d'une vue de collection. Il y a aussi de jolies petites fonctionnalités, comme si vous aviez une liste d'options à afficher mais que certaines ne sont pas appropriées dans tous les cas, vous pouvez simplement masquer celles qui ne le sont pas et la vue de la pile s'en occupera. Masquer des éléments dans une vue de collection nécessite beaucoup plus de configuration.

Les vues de pile constituent également une option très légère pour les vues de conteneur créées entièrement dans le générateur d'interface et sans exigence de code. De cette manière, la vue pile remplace une grande partie de vos contraintes de présentation automatique en utilisant les tailles de contenu intrinsèques des sous-vues qu’elle gère pour gérer la présentation. Vous pouvez également très efficacement imbriquer les vues de pile pour former la plupart des mises en forme de types tabulaires.

16
Wain

Les vues de collection ont des cellules et fonctionnent avec la présentation des données. Les vues de pile permettent de disposer des vues dans un conteneur. Les vues de pile ne permettent pas de manipuler les données, contrairement aux vues de collection avec les délégués. La vue Collection est centrée sur les données et les vues Pile sont centrées sur la présentation.

11
ejkujan

Les vues de collection sont des éléments d'interface utilisateur beaucoup plus complexes, nécessitant un objet DataSource, une présentation, etc.

Les vues de pile semblent remplacer les astuces dans lesquelles vous deviez appliquer plusieurs contraintes à plusieurs éléments pour créer (par exemple) une pile de boutons ou organiser des étiquettes et des champs de texte pour un formulaire.

Les vues de pile n'ont pas non plus de délégué et ne disposent d'aucun mécanisme pour sélectionner des éléments ou quoi que ce soit du genre.

3
Brian Broom

Si vous vous demandez pourquoi ces deux options existent, ce qui est très similaire - vous allez parfois créer une cellule personnalisée (tableview ou collectionview) et ajouter une autre tableview ou une collectionview en tant que sous-vue - alors vous allez adorer savoir comment. UIStackView fonctionne ....

0
kurtanamo