Ios 如何在tvOS中加速UICollectionView单元渲染

Ios 如何在tvOS中加速UICollectionView单元渲染,ios,swift,tvos,tvml,Ios,Swift,Tvos,Tvml,我开发了一个tvOS应用程序,它在CollectionView内部呈现CollectionView。第一个CollectionView的每个部分只有一个元素,我们称之为RowCell,这个元素包含第二个CollectionView,它有许多给定类别的单元格 我的问题是: 当我在行单元格(包含按类别分隔的单元格的行)的prepareforeuse方法中使用.reloadData()时,当我上下滚动时,它的加载速度非常慢。如果我不对行单元格使用.reloadData(),数据总是呈现错误 关于如何使

我开发了一个tvOS应用程序,它在
CollectionView
内部呈现
CollectionView
。第一个
CollectionView
的每个部分只有一个元素,我们称之为
RowCell
,这个元素包含第二个
CollectionView
,它有许多给定类别的单元格

我的问题是: 当我在
行单元格
(包含按类别分隔的单元格的行)的
prepareforeuse
方法中使用
.reloadData()
时,当我上下滚动时,它的加载速度非常慢。如果我不对
行单元格
使用
.reloadData()
,数据总是呈现错误

关于如何使用
.reloadData()
的任何想法,并且不要降低滚动/渲染速度


提前感谢。

如果你有很多类别,那么你需要做大量的
重新加载数据()。如果内部集合视图的单元格需要进行艰苦的渲染,则情况会变得更糟,尽管需要重用单元格。为了缓解这种情况,您可能需要查看一下,在单元格实际显示之前,您可以预取所需的数据并异步执行艰苦的工作

另外,如果可能的话,我建议您去看看Instagram开发的第三方库,该库声称是构建
flexible
fast
列表的工具。我自己使用了IGListKit,它确实是创建所需集合视图的一个非常好的选项。问题是它的学习曲线可能很陡峭


希望这有帮助

它有两个简单的问题。首先,每个单元格都从互联网上加载了大量图像,因此我要求在API中使用低质量的替代方案,第二个是这些图像没有保存在缓存中,因此我必须在每个用户滚动时都这样做。通过实现这两种解决方案,所有问题都消失了。

听起来您可能正在阻塞主线程,可能正在下载数据、渲染/格式化图像等。您应该在后台线程上完成这项工作。您可以尝试使用时间分析器来查看是什么占用了这么多时间。