我在Storyboard(iPad)中定義了一個包含UICollectionView
的視圖,在視圖的底部還有一個UIToolbar
。 在UICollectionView
中,我添加了一個UICollectionViewCell
(由iPadCellCollectionViewCell
類實現),其中包含另一個視圖,即Core-Plot圖(CPTGraphHostingView
類)。UICollectionView的單元格在滾動後並不總是被刷新
我有一個名爲X的類,實現了UICollectionViewDelegate
和UICollectionViewDataSource
。
在類X,我建立我的視圖的每個單元(在ViewDidLoad
)核心-散點圖和我有以下代碼到圖形鏈接到的UICollectionViewCell
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
static NSString* cellId = @"ChartCollectionId";
iPadCellCollectionViewCell* cell = [self.theCollectionView dequeueReusableCellWithReuseIdentifier:cellId forIndexPath:indexPath];
MyChart* chart = [_charts objectAtIndex:indexPath.row];
cell.hostingView.hostedGraph = chart.barChart;
return cell;
}小區
它工作正常,所有我的圖形都正確顯示在屏幕上。當用戶滾動視圖時,會發生該問題,然後一個或多個單元格變爲「空白」。我真的不明白爲什麼。
我已經找到了解決辦法,而不是在Interface Builder中UICollectionViewCell
加入CPTGraphHostingView
,我建立它自己和以前的代碼變成:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
static NSString* cellId = @"ChartCollectionId";
iPadCellCollectionViewCell* cell = [self.theCollectionView dequeueReusableCellWithReuseIdentifier:cellId forIndexPath:indexPath];
[cell.contentView addSubview:[_hostingViews objectAtIndex:indexPath.row]];
return cell;
}
有了這個代碼一切工作正常。有沒有任何解釋爲什麼當我用IB添加CPTGraphHostingView
的UICollectionViewCell
時它不起作用?
每次調用方法時調用「addSubview」是個問題嗎?沒有內存泄漏?
我在哪裏查看錯誤報告? – bandejapaisa