CollectionView问题ios swift

时间:2015-04-16 14:32:03

标签: ios swift collectionview

当我对CollectionView执行ReloadData时遇到问题。

事情是,我做了一个非常小的项目,以向您展示正在发生的事情。

(CollectionView将更改单元格编号2的颜色背景。但是当您执行ReloadData时,许多单元格已更改..)

您可以在此处找到我的项目:https://www.dropbox.com/s/yy7uen60rc292ir/collectionViewTest.zip?dl=0

解决!

感谢您的帮助!,我需要添加函数PrepareForReuse(),我可以在重新使用之前“清理”我的细胞。

1 个答案:

答案 0 :(得分:1)

reloadData()重新加载collectionView的整个数据源。如果您只想更新几个单元格,请查看beginUpdates()endUpdates()。在这里,您将插入或删除行。如果您正在使用Core Data,那么请考虑使用NSFetchedResultsController,因为这样可以简化整个过程并在数据更改时创建流畅的动画。

当您使用dequeueReusableCellWithIdentifier时,您正在重复使用这些单元格。因此,如果您更改一个背景颜色然后重复使用它,您将在重新加载表时看到不一致的更改。确保在所有单元格上设置背景颜色,否则您将体验到这一点。

    var cell = tableView.dequeueReusableCellWithIdentifier("SomeCell") as! UICollectionViewCell
 // This would alternate the colors just to show you what I mean
    indexPath.row % 2 == 0 ? (cell.backgroundColor = UIColor.whiteColor()) : (cell.backgroundColor = UIColor.blackColor())