菜鸟教程小白 发表于 2022-12-13 10:25:58

ios - 使用几种不同类型的单元格滚动 UITableView 不够平滑


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

<p>有没有办法为 UITableView 预加载可重用的单元格。因此,例如,我可以加载每种 xib 类型 3 次(因此当调用 dequeueReusableCellWithIdentifier 时,tableview 将在内存中加载 30 个可重复使用的单元格(10 种单元格类型中的每个单元格 3 个))?稍后我需要在应用商店上发布应用,因此不允许使用任何私有(private) api。或者,在这种情况下,您还有其他可能的解决方案来提高性能吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我记得,CoreGraphics 会在每个单元格首次出现时对其进行检查,并执行一些混合计算,以使标签和 View 按照您的设计显示。 </p>

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

<p>减少 alpha != 1 的 View 数量。</p>

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

<p>查看这个人的解释和示例代码,了解他如何让动态表格 View 尽可能快地滚动。 <a href="https://github.com/kevinlawler/fastscrolling" rel="noreferrer noopener nofollow">https://github.com/kevinlawler/fastscrolling</a> </p>

<p><strong>*该链接是一个旧示例,但原则仍然适用于 afaik</strong></p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 使用几种不同类型的单元格滚动 UITableView 不够平滑,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/28995037/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/28995037/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 使用几种不同类型的单元格滚动 UITableView 不够平滑