2011-01-06 26 views
1

我尝试用分页创建一个简单的UIScrollView。我希望能够通过大量的PDF文档进行滚动,但是这给了我一些问题......用一个大的PDF分页UIScrollView

我尝试以下选项:

  • 在启动转换所有的PDF页面的UIImages,这工作原理,但是是开始
  • 手工绘制的PDF页面中的drawRect很慢,但是再一次,这是慢...

而且我不喜欢一切加载在启动时而是在做用法。

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

Thnx!

耶勒

+0

检查了这一点:[github.com/vfr/Reader](http://github.com/vfr/Reader)这个项目涵盖了你所说的一切。 – 2012-11-23 09:46:13

回答

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页加载到内存