【问题标题】:UICollectionView Not RedrawingUICollectionView 不重绘
【发布时间】:2019-07-18 00:06:16
【问题描述】:

我有一个非常简单的 UICollectionView,由于某种原因,它在应用过滤器后不会像我预期的那样 reloadData()。我在过滤后的数组中获得了正确的值,但是我在集合视图中获得了在滚动之前不会清除的流氓单元格 - 出列。

在某些情况下它可以正常工作。我还没有理解它没有的情况。

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

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

cellForItemAt 功能一切正常。我只想在将过滤器应用于数组后重绘视图。显然,

hourlyCollectionView.reloadData()

紧跟过滤器并没有完成它。我敢肯定,我在这里缺少一些简单的东西。非常感谢任何想法。

【问题讨论】:

    标签: swift uicollectionview reloaddata


    【解决方案1】:

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

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

    【讨论】:

    • @SGraham 能否请您上传更多代码,以便我查看所有内容的布局以及您的变量声明的样子。
    【解决方案2】:

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

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

    这解决了我的问题。我不确定在我的情况下是否有另一个变量导致了这个问题,但没有其他任何工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-21
      • 2015-07-29
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多