UICollectionView 不重绘
Posted
技术标签:
【中文标题】UICollectionView 不重绘【英文标题】:UICollectionView Not Redrawing 【发布时间】:2019-07-18 00:06:16 【问题描述】:我有一个非常简单的 UICollectionView,由于某种原因,它在应用过滤器后不会像我预期的那样 reloadData()。我在过滤后的数组中获得了正确的值,但是我在集合视图中获得了在滚动之前不会清除的流氓单元格 - 出列。
在某些情况下它可以正常工作。我还没有理解它没有的情况。
我有一个对象数组,以及一个用于保存从该主数组过滤的值的数组,即:
hourly = hourlyMaster.filter $0.forecastDateTime >= minDate `
cellForItemAt 功能一切正常。我只想在将过滤器应用于数组后重绘视图。显然,
hourlyCollectionView.reloadData()
紧跟过滤器并没有完成它。我敢肯定,我在这里缺少一些简单的东西。非常感谢任何想法。
【问题讨论】:
【参考方案1】:尝试将reloadData()
放在hourly
数组的didSet
中,以便在更新数据源时始终重新加载集合视图。您调用reloadData()
的速度可能比filter
函数的执行速度快。
var hourly: [Date] = []
didSet
hourlyCollectionView.reloadData()
【讨论】:
@SGraham 能否请您上传更多代码,以便我查看所有内容的布局以及您的变量声明的样子。【参考方案2】:从来没有找到可行的解决方案或解决这个问题。不久前发现了一个雷达...here.
解决方法就是使用 yourCollectionView.reloadSections()
这解决了我的问题。我不确定在我的情况下是否有另一个变量导致了这个问题,但没有其他任何工作。
【讨论】:
以上是关于UICollectionView 不重绘的主要内容,如果未能解决你的问题,请参考以下文章