En la práctica, todos usan UICollectionView con el que me he encontrado, cuando solo necesitan un UITableView. "Es unidimensional. Sube y baja. ¿Por qué está agregando métodos de delegado innecesarios para el diseño Y los datos?". Una vez pasé 2 horas adicionales ayudando a una startup a descubrir por qué su UICollectionViewCell se aplastó porque el propietario, que no leyó el manual de animaciones, ni HIG, ni la guía UICollectionView, decidió usarlo y agregar alturas variables y animaciones. No hace falta decir que se dio un dolor de cabeza y perdió mucho tiempo en un problema no crítico para el negocio que podría haber evitado simplemente usando una celda de tabla, ya que no hay delegado de diseño adicional + Nib.
Déjame aclarar esto, estoy a favor de UICollectionView cuando tus datos y pantalla lo necesiten. Son muy poderosos. Pero en la práctica, la mayoría de las personas que he visto las han estado usando en listas.
Esto trae a colación otro defecto. También se utilizan en listas breves y constantes que no cambiarán nunca. En este caso, simplemente haga un Xib. O escriba una vista personalizada que los apile. ¿Por qué? Porque no necesita la gestión de memoria para 5 juegos de etiquetas con un botón o interruptor. Si pueden cambiar, entonces sí, use una lista. Si quieres física, entonces UICollectionView funciona bien con algunos efectos geniales. Pero, ¿realmente necesita agregar 5 métodos de delegado y un sistema de diseño para 5 etiquetas que nunca se moverán?
Además, no olvido que iOS ahora también tiene una vista de apilamiento nativa. Nunca consigo que se deforme como quiero, a pesar de que soy bastante experto en los sistemas 2D y de animación, por lo que nunca uso el integrado.
Todo lo que digo es que defina sus requisitos. Tal vez no necesite ninguno de estos, si su interfaz de usuario no está agregando / eliminando elementos y actualizándose. O tal vez desee escribir un juego de cartas y tirarlos virtualmente en una mesa, luego use UICollectionView con un sistema de física para su guía de diseño.