我有一个非常简单的UICollectionView,由于某种原因,它不会像我在应用过滤器后所期望的那样重新加载Data()。我在过滤后的数组中获取了正确的值,但在集合视图中却获取了流氓单元格,这些单元格直到滚动时才清除-出队。
在某些情况下,它可以正常工作。我还没有了解不符合条件的情况。
我有一个对象主数组,以及一个用于保存从该主数组过滤掉的值的数组,即:
hourly = hourlyMaster.filter { $0.forecastDateTime >= minDate }`
cellForItemAt功能都可以正常工作。我只想在将滤镜应用于数组后重绘视图。显然,
hourlyCollectionView.reloadData()
没有立即执行过滤器操作。我敢肯定,这里容易缺少一些东西。任何想法都将不胜感激。
答案 0 :(得分:0)
请尝试将reloadData()
放入hourly
数组的didSet
中,以在数据源更新时始终重新加载集合视图。您调用reloadData()
的速度可能比filter
函数的执行速度快。
var hourly: [Date] = [] {
didSet {
hourlyCollectionView.reloadData()
}
}
答案 1 :(得分:0)
从来没有得到可行的解决方案或解决这个问题。不久前发现了雷达……here。
解决方法只是使用yourCollectionView.reloadSections()
那解决了我的问题。我不确定在我的情况下是否存在另一个导致此问题的变量,但没有其他方法起作用。