高频(0.01 秒)realoadAt 调用 UICollectionview 将 cpu 使用率提高到 100%

high frequency (0.01 sec) realoadAt call for UICollectionview bumps cpu usage to 100%

我希望以 0.01 秒的频率调用 collectionView.reloadItems(at: [IndexPath(item: middle, section: 0)]) 来更新单个单元格,但它会颠簸 cpu使用率达到 100%。

欢迎提出任何建议。

你不应该这样做,只需要在你想要的 indexPath 获取单元格:

if let cell = collectionView.cellForItem(at: IndexPath(item: 10, section: 0)) as? `YourCollectionViewCellClass` {
    //Update cell data here instead of reloading
}

上面@son关于不这样做的回答是绝对正确的。您应该向 collectionView 询问 indexPath 中的现有单元格实例,并在那里手动进行更改。

这是一个很常见的问题,从 iOS 15 开始,我们有系统 API 可以帮我们完成上面的工作。 UICollectionView.reconfigureItems