gpt4 book ai didi

ios - .reloadData() 没有重新创建可见单元格或内存中的单元格?

转载 作者:行者123 更新时间:2023-11-28 15:04:16 24 4
gpt4 key购买 nike

当我实例化第三个单元格时,我会将更多项目添加到我的模型数组中,然后我将更新 Collection View 数据:

DispatchQueue.main.async(execute:  {
self.collectionView.reloadData()
})

一切都按预期进行。但是,当我为 collectionView 重新加载数据时,它将实例化当前可见或保存在内存中的单元格 (2,3)。不幸的是,我有一些昂贵的服务器请求会消耗大量时间。

Instaniated  0
Instaniated 2
Instaniated 3

******polluting more data: size of cells 10

Instaniated 2
Instaniated 3
Instaniated 4

如何在不重新创建可见单元格或内存中的单元格的情况下重新加载数据?

非常感谢。

最佳答案

与其重新加载单元格,不如尝试插入或重新加载实际已更改的单元格。您可以为此使用 UIColletionViewperformBatchUpdates(_:):Link

一个例子:

collectionView.performBatchUpdates {
self.collectionView.insertItems(at: [IndexPath(row: 1, section: 1)])
}

这确保只加载新的单元格。您还可以在此方法中移动单元格和部分,甚至删除单元格。链接页面包含所有这些的文档。

关于ios - .reloadData() 没有重新创建可见单元格或内存中的单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48663893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com