SJCSimplePDFView 1.0.0

SJCSimplePDFView 1.0.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布时间最后发布2015 年 5 月

Stuart Crook 维护。



  • 作者:
  • Stuart Crook

这是一个用于在 iOS 上显示 PDF 的 UIView 子类。我创建这个类是为了在 UIWebView 中显示 PDF 时,缺乏必要的样式选项和反馈。

PDFView

  • 提供 3 种不同的显示模式
  • 允许自定义页面背景、边框和内边距
  • 允许将显示限制在 PDF 文档中的页面子集
  • 允许观察可见的页面号(或页码)
  • 与 Interface Builder 集成(主要是 IBInspectable)

此仓库包含一个示例应用程序,您可以从中使用 PDFView 的设置进行实验,以了解它可以做什么。

安装

SJCSimplePDFView.hSJCSimplePDFView.m 文件复制到您的项目中。

(Cocopods 集成即将推出。)

使用

PDFView 可以通过 Interface Builder 或代码(使用 -initWithFrame:)创建和配置。

可以通过以下三种方式之一将 PDF 文档加载到 PDFView 中:

  • .PDFData 属性设置为包含 PDF 文件的 NSData 对象。
  • .PDFFileURL 设置为 PDF 文档的 URL。注意,这应该是本地文件 URL(file://...)。如果您尝试使用任何其他 URL 设置此值,将抛出异常。
  • .PDFBundleFileName 属性设置为包含在您的应用程序包中的 PDF 文档的文件名。此属性也可以在 Interface Builder 中设置(尽管当前在 Interface Builder 中不会显示 PDF 的内容)。

.viewMode 可以在 Interface Builder 中指定。由于当前与枚举一起工作的限制,这是一个可以接受任何值的整数字段。下方的值注有效,其他值将被解释为 0。它有 3 种可能的显示模式

  • kSJCPDFViewModeContinuous [0] -- 页面以端到端方式显示,宽度设置为 PDFView 的宽度,并垂直滚动
  • kSJCPDFViewModePageVertical [1] -- 单个页面显示,缩放以适应 PDFView,并垂直滚动
  • kSJCPDFViewModePageHorizontal [2] -- 单个页面显示,缩放以适应 PDFView,并水平滚动

一旦设置了文档,可以在 .documentPageCount 中找到它包含的页数。默认情况下,显示文档的所有页面。要显示页面子集,请将 .displayPages 设置为包含要显示的页码的 NSIndexSet。 .displayedPageCount 包含将从文档中实际显示的页面数。

.currentPage 表示当前显示的页面编号。如果一次可以显示多个页面(如果 .viewModekSJCPDFViewModeContinuous),则 .currentPages 返回一个包含所有可见页面编号的 NSIndexSet(在其他模式下返回一个仅包含 .currentPage 的 NSIndexSet)。页面编号从 1 开始,基于 .displayedPages,而不是 PDF 文档中页面位置,因此如果您只想显示文档的 21-25 页,则 .currentPage 将将这些报告为 1-5 页。设置 .currentPage 会更改显示的页面,只要新值在 1 和 .displayedPageCount(包含)之间。

如果您想要跟踪用户与 PDFView 的交互,.currentPage 是 KVO 兼容的(参见示例应用程序)。

可以通过 .pageInsets 设置 PDFView 边缘与页面之间的内边距。可以通过 .pageBackgroundColour 设置此内边距区域的背景颜色。(注意,大多数具有白色背景的 PDF 事实上是透明的。)可以通过 .borderColour.borderWidth 设置围绕此内边距区域绘制的边框的宽度与颜色。所有这些属性都可以在 Interface Builder 中设置。