OGeek|极客世界-中国程序员成长平台

标题: ios - 使用几种不同类型的单元格滚动 UITableView 不够平滑 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 10:25
标题: ios - 使用几种不同类型的单元格滚动 UITableView 不够平滑

我需要在一个非常复杂的表格 View 中包含几种不同的单元格类型。我在那些具有不同重用标识符的不同单元类中注册了 10 个 xib。问题是当我第一次(从上到下)滚动表格 View 时,我可以看到它有点滞后。然而,在我滚动到底部之后,然后滚动回到顶部和底部再次运行顺利。问题似乎出在 dequeueReusableCellWithIdentifier: 如果目前没有所需类型的可重用单元格,它似乎在滚动时加载不同的 xib 文件的速度不够快。这就是为什么第一次滚动会滞后,但是当每种类型的足够多的可重用单元被加载时,它就会开始平滑滚动。

有没有办法为 UITableView 预加载可重用的单元格。因此,例如,我可以加载每种 xib 类型 3 次(因此当调用 dequeueReusableCellWithIdentifier 时,tableview 将在内存中加载 30 个可重复使用的单元格(10 种单元格类型中的每个单元格 3 个))?稍后我需要在应用商店上发布应用,因此不允许使用任何私有(private) api。或者,在这种情况下,您还有其他可能的解决方案来提高性能吗?



Best Answer-推荐答案


我记得,CoreGraphics 会在每个单元格首次出现时对其进行检查,并执行一些混合计算,以使标签和 View 按照您的设计显示。

可以通过在 InterfaceBuilder 中将每个 View (标签、按钮、 View )设置为不透明来缓解这种减速。

减少 alpha != 1 的 View 数量。

将背景设置为白色,或者您使用的任何颜色,而不是清晰的。

查看这个人的解释和示例代码,了解他如何让动态表格 View 尽可能快地滚动。 https://github.com/kevinlawler/fastscrolling

*该链接是一个旧示例,但原则仍然适用于 afaik

关于ios - 使用几种不同类型的单元格滚动 UITableView 不够平滑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28995037/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4