2つのネストされたUICollectionViewがあります。外部コレクションビューのデリゲートはメインビューコントローラーであり、内部コレクションビューデリゲートは外部コレクションビューのUICollectionCellです。
外側のコレクションビューにはラベルと内側のコレクションビューのみが含まれます。通常、これらは7つあり、内側のコレクションビューには3つまたは4つのセル(3つのラベルを含む)が含まれている必要があります。
問題は、内側のコレクションビューが(外側のビューの最初の2セットのデータに対して)2回だけ更新され、その後繰り返されるように見えることです。
これが外部UICollectionViewのcellForItemAtIndexPathです
- (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;
}
...これが、outUICollectionビューのUICollectionViewCellオブジェクトにある2番目のUICollectionViewのcellForItemAtIndexPathです。
- (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セットでは問題がない理由がわかりません...