我应该如何在 swift 中实现连续滚动页面?

How should i implement continuous scrolling through pages in swift?

请你给我一些建议好吗?我已经挣扎了好几天了。

我的目标是实现连续滚动以显示文档中的页面。每个页面由 viewController 控制。并且用户应该能够放大和缩小。 我应该用 scrollView 还是 collectionView 从头开始​​做?哪个更好,内存效率更高?

或者有任何现成的解决方案吗? (我在 Github 中搜索但没有成功,UIPageViewController 是最终的解决方案,因为它不允许连续滚动并且只显示整个页面)

非常感谢

图片: example continuous scrolling

集合视图非常适合连续滚动,并且可以有效利用内存。 (单元格被回收。)如果滚动区域的总内容太多而无法放入内存,您将需要在滚动到视图时将每个页面的内容加载到内存中,并在滚动离开时释放它。 (也许让您的模型存储每个页面内容的文件 URL,并将页面内容保存到单元格中。)

至于缩放,最好的方法取决于您的意思。如果内容是矢量内容,如 PDF,您可以在用户滚动时简单地重新渲染矢量图像。如果内容是非常高分辨率的图像,您可能需要创建一个 mipmapped tiled rendering 框架,或者使用其他人的框架。我以前写过自己的 mipmapped 平铺渲染框架。这是可行的,但需要大量工作。

(你把原始的巨大图像分解成更小的正方形图块。然后你将原始图像渲染成 50% 比例的图块并保存,然后是 25%,然后是 12.5%,等等,直到你达到单个图像填满屏幕的大小。)