我遇到一个线程从服务器获取新模型的情况,我尝试重新加载UICollectionViewController
中的所有单元格。
我打电话给collectionView.reloadData()
(在主线程上),突然所有的细胞都在改变它们的位置(意思是,我可以看到细胞的内容从一个细胞改变到另一个细胞)
以下无效:
self.collectionView!.reloadItemsAtIndexPaths(indexPaths)
其中indexPaths包含所有当前路径self.collectionView!.visibleCells()
我在这里缺少什么?
答案 0 :(得分:1)
如果服务器返回正确的有序数据,我担心你没有清理单元格中的数据。当你没有加载图像数据或者没有图像时,你应该将imageView.image设置为nil数据。 如果您在UITableViewDataSource中自定义了单元格,则应该执行以下操作:
if(data.image != nil) {
imageView.image = data.image;
} else {
imageView.image = nil;
}
如果您在自定义表格视图单元格类中执行此操作,请执行以下操作:
-(void)prepareForReuse {
imageView.image = nil
}