У меня есть 2 вложенных UICollectionViews. Делегатом для внешнего представления коллекции является главный контроллер представления, а делегатом внутреннего представления коллекции является UICollectionCell внешнего представления коллекции.
Во внешнем представлении коллекции есть только метка и внутреннее представление коллекции - обычно их семь, внутреннее представление коллекции должно содержать 3 или 4 ячейки (содержащие 3 метки).
Проблема в том, что внутреннее представление коллекции обновляется только дважды (для первых двух наборов данных во внешних представлениях), после чего они повторяются.
Вот cellForItemAtIndexPath для внешнего UICollectionView
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Main Tide Data Table Cell";
TideDataTableCell* tideDayDataCell = [self.tideDataTable dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
tideDayDataCell.tideDataTable.delegate = tideDayDataCell;
tideDayDataCell.tideDataTable.dataSource = tideDayDataCell;
tidalDate* tideDate = self.tidalDates[indexPath.row];
tideDayDataCell.thisTidalDate = tideDate;
tideDayDataCell.dayLabel.text = tideDate.dateString;
tideDayDataCell.averageTideHeight = self.avgTideHeight;
tideDayDataCell.backgroundColor = [UIColor whiteColor];
self.tideDataTable.backgroundColor = [UIColor lightGrayColor];
return tideDayDataCell;
}
... и вот cellForItemAtIndexPath для второго UICollectionView, который находится в объекте UICollectionViewCell для выходного представления UICollection!
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
NSString* CellIdentifier = @"Tide Info Table Cell";
TidalTideTableCell* tidalTideTableCell = [self.tideDataTable dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
tidalTideTableCell.timeTideLabel.text = @"";
tidalTideTableCell.heightTideLabel.text = @"";
tidalTideTableCell.hwlwTideLabel.text = @"";
self.tideDataTable.backgroundColor = [UIColor clearColor];
Tide* tide = self.thisTidalDate.tides[indexPath.row];
tidalTideTableCell.heightTideLabel.text = [[NSNumber numberWithDouble:tide.height] stringValue];
if (tide.height > self.averageTideHeight)
{
tidalTideTableCell.hwlwTideLabel.text = @"HW";
}
else
{
tidalTideTableCell.hwlwTideLabel.text = @"LW";
}
tidalTideTableCell.timeTideLabel.text = tide.date;
tidalTideTableCell.backgroundColor = [UIColor clearColor];
return tidalTideTableCell;
}
Надеюсь, в этом есть смысл - спросите, не так ли ... Я просто не понимаю, почему это нормально для первых 1 наборов данных, а затем нет для следующих 5 ...