我已经看到了两种方法来做到这一点,即通过UIWebView和使用Quartz框架来绘制pdf页面。我听说过使用UIWebView的缓慢问题,它不像使用后一种方法那么灵活。
作为一个新手iOS程序员,1)我应该首先学习哪些主题(在继续学习Quartz PDF支持之前,我应该学习哪些框架/控件/库)?
2)在iOS5/Xcode最新测试版中是否有与此相关的新内容?
尽管苹果在他们的主题演讲中表示"更好的PDF支持",但iOS4和新版本之间并没有明显的区别。可能是他们内部改进了PDF解析,但这纯粹是我的猜测。
对pdf使用UIWebView并不是很好。苹果在iOS4中引入了QuickLook,它比webview更快更干净。
如果你想获得更快的速度,更多的功能,你必须深入研究石英CGPDF*函数,而得到正确和快速是一个真正的PITA。特别是因为有很多你甚至不知道的东西,例如,pdf可以有旋转信息,裁剪/媒体框等等。对于快速滚动,你还需要某种UIScrollView来重用它的内部视图来加快速度。
并且要非常小心CATiledLayer(你需要允许快速缩放)-因为它是多线程工作的,当你没有正确结束渲染时,它真的很喜欢在你的脸上崩溃。重要的是,nil是委托,甚至是内容。但是清空内容需要等待线程,并且可能会阻塞主视图。
如果你仍然想自己做,苹果的缩放PDF浏览器的例子是一个开始。虽然它不能处理旋转或裁剪/媒体框为负值的情况-也没有页面滚动
我想你应该试试fastpdfkit。这是一个很好的库,有很多功能(缩略图,文本搜索,等等…)。
你可以在http://www.fastpdfkit.com/
找到它注意:我对fastpdfkit公司或网站不感兴趣