gpt4 book ai didi

ios - 重新加载部分后的 UICollectionView : and reloadData the cell is not update correctly

转载 作者:行者123 更新时间:2023-11-29 10:23:03 25 4
gpt4 key购买 nike

我有一个带有 UICollectionView 的 Controller 实现,它有两个部分。section数据是从两个不同的API中获取的,返回顺序未知。

当返回第一部分数据时,我调用 reloadSections 来更新第一部分的单元格。当返回第二部分数据时,我调用 reloadData 更新整个单元格(包括第一部分和第二部分)

但是如果我在 reloadSections 之前调用 reloadData,单元格会正确更新。在 reloadData 之前调用 reloadSections 时,第二部分中的项目计数是正确的,但单元格显示重复内容,而不是新内容。

我已经编写了一个演示项目并将新数据插入第二部分,调用 reloadData,将新数据插入第一部分。 Collection View 也可以正常工作。

当我调用 reloadSections:FirstSection,然后调用 reloadData 时,它就不起作用了。

演示项目可以在这里找到: https://github.com/6david9/ReloadData/blob/master/ReloadData/ReloadData/ViewController.m

附注当我为每个部分更新调用 reloadSections 时,结果是正确的!

附注当我为第一部分调用 reloadSections 时,它会重新加载第一部分中的所有单元格。但在那之后,我调用 reloadData 它只调用 cellForItem 作为第二部分中的最后一项,我将新项目添加到第二部分的前面。所以它显示上一个项目的重复内容是最后一个。

最佳答案

问题是当重新加载数据时调用 Collection View 只调用

cellForItemAtIndexPath

用于第二个列表和第二个列表中的最后一个索引。所以你的数据是重复的。它应该重新加载整个 Collection View ,但它没有这样做。我认为出于某些性能原因或其他原因。他们也在重新加载文档中说

“不要在动画中间调用它,例如插入或删除”

你在那个进程中调用它,所以从 Collection View 来看它是一些性能效率。一旦 Collection View 完全重新加载,请尝试在其他情况下调用这些插入。我运行了你的项目,从断点检查中我发现了这个结论。祝你好运

关于ios - 重新加载部分后的 UICollectionView : and reloadData the cell is not update correctly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33870085/

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