gpt4 book ai didi

ios - 使用 reloadData 时如何执行单元格选择动画?

转载 作者:行者123 更新时间:2023-11-29 01:54:59 24 4
gpt4 key购买 nike

我有一个 UICollectionView,我重写了 UICollectionViewCell 子类中的 setSelected,以便在用户选择单元格时执行一点弹跳动画。

问题在于,在选择单元格时,单元格的选择会改变其他单元格的数据(例如,假设其他单元格中的每个单元格都有一个标签,其中显示了所选单元格的数量)。所以我调用了 collectionView.reloadData() 以便所有其他单元格也更新以显示新数据(例如,在标签中选择的单元格数量)。

但是,此 reloadData() 调用似乎完全重置了 UICollectionView。任何正在发生的动画都会停止,单元格会在没有动画的情况下简单地更新。

如何让单元格选择动画同时更新其他单元格?

我试过仅在动画完成后调用 reloadData() ,但这使得更新其他单元格看起来有滞后/延迟(因为它直到动画结束后的片刻),看起来不太好。

同样,我试过调用 reloadItemsAtIndexPaths:(并排除将设置动画的选定单元格),但无论出于何种原因,对于 Collection View ,此方法看起来确实很慢。就像按下它后有明显的延迟一样。

我应该在这里做什么?在 Collection View 不破坏正在进行的动画的情况下重新加载数据的标准是什么?

最佳答案

重新加载会丢弃现有单元格并创建(或重复使用)新单元格。所以任何动画本质上都是被破坏的。所以,不要重新加载。

相反,像往常一样更新您的数据模型,然后获取当前可见的索引路径和关联的单元格并直接更新这些单元格。

关于ios - 使用 reloadData 时如何执行单元格选择动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30967258/

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