UICollectionView不重绘

时间:2019-07-18 00:06:16

标签: swift uicollectionview reloaddata

我有一个非常简单的UICollectionView,由于某种原因,它不会像我在应用过滤器后所期望的那样重新加载Data()。我在过滤后的数组中获取了正确的值,但在集合视图中却获取了流氓单元格,这些单元格直到滚动时才清除-出队。

在某些情况下,它可以正常工作。我还没有了解不符合条件的情况。

我有一个对象主数组,以及一个用于保存从该主数组过滤掉的值的数组,即:

hourly = hourlyMaster.filter { $0.forecastDateTime >= minDate }`

cellForItemAt功能都可以正常工作。我只想在将滤镜应用于数组后重绘视图。显然,

hourlyCollectionView.reloadData()

没有立即执行过滤器操作。我敢肯定,这里容易缺少一些东西。任何想法都将不胜感激。

2 个答案:

答案 0 :(得分:0)

请尝试将reloadData()放入hourly数组的didSet中,以在数据源更新时始终重新加载集合视图。您调用reloadData()的速度可能比filter函数的执行速度快。

var hourly: [Date] = [] {
     didSet {
          hourlyCollectionView.reloadData()
     }
}

答案 1 :(得分:0)

从来没有得到可行的解决方案或解决这个问题。不久前发现了雷达……here

解决方法只是使用yourCollectionView.reloadSections()

那解决了我的问题。我不确定在我的情况下是否存在另一个导致此问题的变量,但没有其他方法起作用。