En pratique, tout le monde utilise UICollectionView que j'ai rencontré, alors qu'ils n'ont besoin que d'un UITableView. "C'est unidimensionnel. Il monte et descend. Pourquoi ajoutez-vous des méthodes de délégation inutiles pour la mise en page ET les données?". Une fois, j'ai passé 2 heures supplémentaires à aider une startup à découvrir pourquoi son UICollectionViewCell a été écrasé parce que le propriétaire, qui n'a pas lu le manuel Animations, ni HIG, ni le guide UICollectionView, a décidé de l'utiliser et d'ajouter des hauteurs et des animations variables. Inutile de dire qu'il s'est donné mal à la tête et a perdu beaucoup de temps sur un problème non critique qu'il aurait pu éviter en utilisant simplement une cellule de tableau, car il n'y a pas de délégué de mise en page supplémentaire + Nib.
Permettez-moi de clarifier les choses, je suis tout à fait pour UICollectionView lorsque vos données et votre affichage en ont besoin. Ils sont très puissants. Mais en pratique, la plupart des gens que j'ai vus les utilisent sur des listes.
Cela soulève un autre défaut. Ils sont également utilisés sur des listes courtes et constantes qui ne changeront jamais. Dans ce cas, créez simplement un Xib. Ou écrivez une vue personnalisée qui les empile. Pourquoi? Parce que vous n'avez pas besoin de la gestion de la mémoire pour 5 jeux d'étiquettes avec un bouton ou un interrupteur. S'ils peuvent changer, alors oui, utilisez une liste. Si vous voulez de la physique, UICollectionView fonctionne bien avec quelques effets sympas. Mais avez-vous vraiment besoin d'ajouter 5 méthodes déléguées et un système de mise en page pour 5 étiquettes qui ne bougeront jamais?
De plus, je n'oublie pas qu'iOS a maintenant une vue d'empilement native. Je ne peux jamais le faire déformer comme je le souhaite, même si je suis assez doué pour les systèmes 2D et d'animation, donc je n'utilise jamais le système intégré.
Tout ce que je dis, c'est de définir vos besoins. Peut-être que vous n'avez besoin ni de l'un ni de l'autre, si votre interface utilisateur n'ajoute / ne supprime pas d'éléments et ne se rafraîchit pas. Ou peut-être voulez-vous écrire un jeu de cartes et les jeter virtuellement sur une table, puis utiliser UICollectionView avec un système physique pour son guide de mise en page.