uicollectionview uicollectionviewcell uicollectionviewlayout uicollectionreusableview

uicollectionview swift 4



Dos columnas UICollectionView con encabezado (1)

Esto es bastante sencillo usando un UICollectionView con diseño de flujo. Como cada celda puede tener una altura dinámica, lo único que necesita es que cada celda tenga un ancho de 160 (o la mitad del ancho de la vista de la colección). Luego implemente collectionView:layout:sizeForItemAtIndexPath: para que cada elemento pueda devolver su altura apropiada.

Sin embargo, dado que cada celda tiene una altura dinámica, podrías terminar con una columna mucho más larga que otra. Si también quieres alturas de columna iguales, querrás barajar el orden de la lista de tal forma que la altura de la primera mitad de los objetos sea aproximadamente la altura de la otra mitad.

Tengo un diseño que tiene dos columnas una al lado de la otra. ¿Hay una manera simple de hacer esto usando un único UICollectionView? Los únicos requisitos son que la solución debe funcionar para iOS 8 y las celdas deben apilarse verticalmente en cada columna como esta:

----------------- | A | | B | ----------------- | C | E | | C | F | | D | | | E | | -----------------

Los Cs apilados demuestran que las celdas de las columnas izquierda y derecha pueden tener diferentes alturas, por lo que no es suficiente pintarlas a la izquierda, a la derecha, a la izquierda, a la derecha.