Multiple UICollectionView en un controller

Tengo una vista configurada con dos UICollectionViews. Cada una de estas vistas tiene una matriz que lo respalda con diferentes tamaños. collection1 está respaldada por array1, y collection2 está respaldada por array2. El problema es que cualquier número que se devuelva para la colección 1 desde el número de artículos se está aplicando a ambas vistas de colección.

Por ejemplo, si array1 es tamaño 4 y array2 es tamaño 5, ambas collections mostrarán 4 elementos. Si array1 es el tamaño 5 y array2 es el tamaño 4, cuando recorra la colección2 hasta el final llame a cellForItemAtIndexPath con un itemIndex de 5 para collection2 y obtengo un NSRangeException.

¿Cómo puedo hacer que cada colecciónView use su propio tamaño?

- (NSInteger)collectionView:(UICollectionView *)view numberOfItemsInSection:(NSInteger)section; { if(view == self.colleciton1){ return self.array1.count; } else if (view == self.collection2){ return self.array2.count; } return 0; } - (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath; { if(cv == self.collection1){ CharacterCell *cell = [cv dequeueReusableCellWithReuseIdentifier:FIRST_CELL_IDENTIFIER forIndexPath:indexPath]; cell.label.text = self.array1[indexPath.item]; return cell; } else if (cv == self.collection2){ EpisodeCell *cell = [cv dequeueReusableCellWithReuseIdentifier:SECOND_CELL_IDENTIFIER forIndexPath:indexPath]; cell.label.text = self.array2[indexPath.item]; return cell; } return nil; } 

He incluido un git repo con un proyecto que ilustra el problema.

git@github.com: civatrix / MultipleCollectionViews.git

El problema era que estaba usando el mismo object de layout para cada colección. En retrospectiva, eso tiene sentido, pero debes asegurarte de crear diferentes layouts para cada colecciónView.

Probablemente sería más fácil usar ContainerViews y tener dos Controles de UICollectionView separados para cada UICollectionView

Lo que tienes debe funcionar. ¿Son self.colleciton1 y self.collection2 IBOutlets? Si es así, ¿puede verificar que están conectados correctamente?