Mehrere UICollectionView in einem Controller

Ich habe eine Ansicht mit zwei UICollectionViews eingerichtet. Jede dieser Ansichten verfügt über ein Array mit unterschiedlichen Größen. collection1 wird von array1 und collection2 von array2 unterstützt. Das Problem ist, dass jede Zahl, die von numberOfItemsInSection für collection1 zurückgegeben wird, auf beide Auflistungsansichten angewendet wird.

Wenn beispielsweise Array1 die Größe 4 und Array2 die Größe 5 hat, werden in beiden Auflistungen 4 Elemente angezeigt. Wenn array1 die Größe 5 und array2 die Größe 4 hat, wird beim Durchsuchen von collection2 cellForItemAtIndexPath mit einem itemIndex von 5 für collection2 aufgerufen und eine NSRangeException ausgegeben.

Wie kann ich dafür sorgen, dass jede collectionView ihre eigene Größe verwendet?

- (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;
}

Ich habe ein Git-Repo in ein Projekt aufgenommen, das das Problem veranschaulicht.

[email protected]: civatrix / MultipleCollectionViews.git

Antworten auf die Frage(3)

Ihre Antwort auf die Frage