2012-12-06 117 views
2

我有2個嵌套UICollectionViews。外部集合視圖的委託是主視圖控制器,內部集合視圖委託是外部集合視圖的UICollectionCell。問題與嵌套UICollectionViews

外集圖只有一個標籤和在其內部集合視圖 - 通常會有這七個,內集合視圖應包含3個或4個細胞(含有3個標籤)。

的問題是,內部集合視圖僅似乎得到更新兩次(在外部意見第2臺的數據)之後,他們重複。

下面是外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鑑於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 ...

回答

5

這是通過調用[UICollectionView refreshdata]在出隊的方法爲母親(外)UICollectionView解決

+0

你有過在採用這樣的設計,當管理選擇的問題? –

+0

嗨......集合視圖(S)我使用不具備的功能作出選擇 - 它們顯示的數據表。建議的一個詞是,以確保您使用的正確設置和正確傳播代表(取決於你的行爲根據用戶的選擇。) – HillInHarwich

+0

確實。這是棘手的。爲了得到正確的選擇渲染,必須在最外/父集合視圖中處理它。 –