最近公司项目中增加了课件下载及本地文件预览的功能,课件类型主要支持Word,PDF,PPT,图片等类型,本文主要谈一下PDF的预览,主要包括缩略图预览,横纵方向滑动切换,分享到第三方APP,打印等功能。
PDF文档预览主要有一下的几种方式:
- UIWebView
- QLPreviewController
- UIDocumentInteractionController
- CGContexDrawPDFPage
针对以上需求,上面说的的四种方式就显得扩展性和自定义性太差,所以最终选择框架Reader加载pdf文档,非常的简单易用,集成了打印,分享,发邮件,预览等多种功能。写了demo测试过性能,以及iPad和iPhone的适配 ,非常完美,只是不支持两个方向滑动的切换,所以仔细阅读了源码增加了这个功能,分享出来希望可以帮到有需要的码农。
=========以下篇章需要在看过Reader源码的基础上去阅读=========
其实思路很简单,承载滑动的是一个UIScrollView,源码默认只支持横向滑动,需要添加一个方向的属性,
用切换的功能键去控制
@property (nonatomic, assign) NSInteger scrollDirection;//0 横向 1 纵向
前期时间紧迫就写了一个int去控制,稍后优化代码可改为枚举控制,便于代码阅读。
然后要做的就是在获取到PDF的页数之后去修改UIScrollView的contentSize,根据方向不同,修改其最大的宽/高
- (void)updateContentSize:(UIScrollView *)scrollView
{
CGFloat contentHeight, contentWidth;
<