Estoy utilizando un UICollectionView programmatically.UICollectionView con FlowLAyout no desplazándose al establecer secciones insertadas
he fijado que es el marco de la siguiente manera:
UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 3000) collectionViewLayout:flowLayout];
Mi UICollectionViewFlowLayout
tiene una sección de inserción establecer como:
flowLayout.sectionInset = UIEdgeInsetsMake(20.0, 20.0, 100.0, 20.0);
también sólo tengo 1 sección.
Establecí la altura en 3.000 para ver si la vista de colección se desplazaría pero no es así. Lo configuro porque la vista de la colección no parece desplazarse hacia arriba o hacia abajo cuando inserto elementos nuevos.
UICollectionView
tiene una subclase de UIScrollView
, lo que significa que puedo seguir restableciendo el tamaño del contenido de la vista de desplazamiento. ¿Funcionaría esto correctamente?
El único problema es que esto funcionaría si conozco los tamaños de todos los artículos, incluyendo cuántos elementos hay en cada fila.
Si cada artículo tuviera un tamaño diferente, ¿cómo averiguaría el tamaño de cada fila? Lo necesitaría para agregar todos los tamaños de fila y aumentar la altura del tamaño del contenido de self.collectionView
.
EDITAR
Incluso mi sugerencia anterior, al restablecer el tamaño de contenido, no funciona correctamente! Intenté lo siguiente al actualizar mi vista de colección:
int numberOfRows = self.dataArray.count/3;
self.collectionView.contentSize = CGSizeMake(self.view.frame.size.width, (numberOfRows * 200) + 300);
Esto es muy feo. Esto es porque asume que todas mis imágenes son de tamaño 200x200px, que se ajusta a 3 imágenes por fila (de ahí la división por 3).
Además, incluso con el +300 que tengo, la última fila solo puedo ver 3/4 y no toda. Tengo que desplazarme más y podré verlo, pero vuelve a subir a 3/4. Es como el pergamino para refrescar, donde la vista solo se mueve si la arrastras y cuando la dejas regresa a donde estaba. ¿Por qué está pasando esto? ¿Es solo que Apple diseñó UICollectionView
tan mal? Esto es un poco ridículo ... Las UITableViews ajustan su desplazamiento de acuerdo a su contenido automáticamente.
Esta fue la solución para mí. Estaba usando un diseño de flujo personalizado que eliminó las brechas verticales entre los elementos en un diseño de varias columnas. Obtuve solo la mitad de los artículos hasta que hice lo que sugirió Simon. Sospecho que la razón por la que tuve el problema es que la cantidad de elementos consultados se basa en un diseño estándar. –