集合视图问题 ios swift

CollectionView issue ios swift

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

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

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

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

已解决!

感谢您的帮助!,问题是我需要添加功能 PrepareForReuse(),以便我可以 "clean" 我的细胞,然后再使用。

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

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

    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())