使用大型PDF分页UIScrollView

时间:2011-01-06 21:26:37

标签: iphone ipad

我尝试使用分页创建一个简单的UIScrollView。我希望能够滚动浏览大型PDF文档,但这给我带来了一些问题......

我尝试了以下选项:

  • 启动时将所有PDF页面转换为UIImages,这样可行,但启动时速度很慢
  • 在drawRect中手动绘制PDF页面,但又一次这很慢......

我不想在启动时加载所有东西,而是在使用过程中加载。

最近有人这么做过吗?似乎无法找到一个很好的示例项目。

日Thnx!

耶勒

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

此问题是PDF呈现中最常见的问题之一。解决方案是缓存有限数量的pdf页面。由于ios设备的内存不足,当您拥有较大的pdf文件时,无法缓存所有页面。

例如,Goodreader(最好的iOS PDF阅读器应用程序之一)也使用缓存机制。当你翻页时,Goodreader会缓存3页;但是当你更快地翻页时它们会有问题。因此,加载新页面需要更长的时间。

首先从Goodreader的解决方案开始,例如您开始使用上一页,当前页和下一页进行缓存。当用户翻转页面时,您应该缓存上一页或下一页。

如果我举一个例子;

起点(由于性能问题,将两页加载到具有后台线程的内存中):

prev = nil;
current = page1;
next = page2;

当用户翻到下一页时;

prev = page1;
current = page2;
next = page3 //(Load into the cache);

使用此解决方案逻辑,您有机会将超过3页加载到您的内存中

答案 2 :(得分:0)

ZoomingPDFViewer在这里不会有任何帮助。它不包括分页,也不包括更快的加载。 这可能对您有所帮助:http://cocoawithlove.com/2009/01/multiple-virtual-pages-in-uiscrollview.html 将PDF绘制到自定义视图中。这似乎是最有效的技术。