我对集合视图单元格有疑问。首次加载我的集合视图时,它会显示以下项目:
- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath;
{
CalendarCell *cell = [cv dequeueReusableCellWithReuseIdentifier:@"CalendarCell" forIndexPath:indexPath];
[cell bindDate:_datesMgr.currentMonthItems[indexPath.row] andNowDate:_datesMgr.nowDate];
// bind events
if (_eventsMgr.eventsArray.count > 0){
for (int i = 0; i < _eventsMgr.eventsArray.count ; i ++) {
[cell bindConference:_eventsMgr.eventsArray[i]];
}
}
return cell;
}
这些方法内部是将子视图添加到自定义单元格类的逻辑,这取决于某些情况。
它的全部工作,但是,当重新加载集合视图时(我在1秒后强制重新加载),一些单元格被重用并放置在其他单元格上,因此,它显示了#34; old&#34;图片和子视图。
我可以看到强制uicollection视图停止重用单元格的可能解决方案(每次都加载新单元格)。有没有办法做到这一点?
答案 0 :(得分:13)
尝试实施prepareForReuse
方法,以重置自定义UICollectionViewCell
-(void)prepareForReuse {
[super prepareForReuse];
self.yourimageview.image = nil; //and etc.
}