延迟加载 UIScrollView 页面时如何摆脱障碍

Posted

技术标签:

【中文标题】延迟加载 UIScrollView 页面时如何摆脱障碍【英文标题】:How to get rid of the hitch when lazy loading pages of a UIScrollView 【发布时间】:2011-05-26 14:48:48 【问题描述】:

我尝试在启用分页的情况下为 UIScrollView 实现延迟加载解决方案,如 Apple 的 PageControl 示例。它似乎工作正常,唯一的问题是当用户滚动超过 50% 的页面时,在加载下一页的内容时会出现这个短暂的故障(显然是因为加载下一个 ViewController 需要一些时间,而且看起来发生在主线程上)。

有什么方法可以让滚动看起来更流畅,无论用户滚动多快都可以工作?

【问题讨论】:

【参考方案1】:

您需要确保任何需要时间的事情都是异步发生的。这方面的技术将根据您正在加载的内容类型或您正在执行的导致延迟的绘图类型而有所不同。尝试在后台加载图像,在后台进行自定义绘图,使用操作或 gcd 将大型任务分解为可以同时发生的较小块,等等。

【讨论】:

【参考方案2】:

您应该延迟加载周围的页面,以便在用户滚动时它们已经加载。

因此,如果用户滚动到第 2 页,则加载第 1 和第 3 页(如果尚未加载)

【讨论】:

这就是我正在做的事情,但是当用户滚动到页面 2 的中间时,当我加载页面 3 时出现了问题 这会遇到同样的问题,只是当你滚动时,会发生加载页面 N+2 而不是 N+1 的问题。

以上是关于延迟加载 UIScrollView 页面时如何摆脱障碍的主要内容,如果未能解决你的问题,请参考以下文章

在 UIscrollview 上延迟加载照片

使用 SQLite 中的数据在 UIScrollView 中延迟加载

在 UIScrollView 中延迟加载不同尺寸的图像而不分页

UIScrollView 滚动时暂停任何操作

如何摆脱挂起的 ajax 调用并加载另一个页面

无法摆脱脚本中的硬编码延迟