iOS PDFKit墨水注释教程
现在我们可以设置PDFView:
- 使用Interface Builder为
ViewController's
类创建@IBOutlet
- 别忘了
import PDFKit
- 这是我的PDFView设置代码:
//设置PDF视图
pdfView.displayDirection = .vertical
pdfView.usePageViewController(真)
pdfView.pageBreakMargins = UIEdgeInsets(顶部:0,左侧:0,底部:0,右侧:0)
pdfView.autoScales = true
pdfView.backgroundColor = UIColor(白色:0.95,Alpha:1.0)
第一行很简单:您的PDFView
可以具有垂直或水平滚动方向。
第二个非常有用:默认情况下, PDFView
使用内置的UIScrollView
进行所有文档的连续滚动。 但是,您可以激活PageViewController
模式,因此PDFView
在屏幕上仅显示一页。
我发现.autoScales
设置包含错误:屏幕旋转时,它在iPad上不起作用。 要解决此问题,您必须添加此调用:
覆写func viewWillTransition(大小为CGSize,搭配协调器:UIViewControllerTransitionCoordinator){
pdfView.autoScales = true
}
另一个异常行为的方法是.backgroundColor
。 它仅在代码中起作用,而当您尝试在Interface Builder中进行设置时则不起作用。 哦,我花了很多时间试图了解我做错了什么! 最后,我能够找到原因:调用pdfView.document = ...
PDFView的背景色重置为默认值。 因此,请在 pdfView.backgroundColor = ...
之后 调用 pdfView.backgroundColor = ...
完成PDFView设置后,让我们向您的项目中添加一个示例PDF文档 (将其拖放到左侧面板中):
创建PDFDocument
并将其添加到您的PDFView
:
保护卫队路径= Bundle.main.url(forResource:“ YOUR_FILE_NAME”,withExtension:“ pdf”)else {return}
pdfView.document = PDFDocument(URL:路径)
这很容易!
现在,我们的应用程序已经启动并运行,具有以下现成的功能:
- 两指手势缩放
- 卷动
- 长按手势以调用复制菜单
- ThumbnailView支持
这就是我的viewDidLoad方法在完成此步骤后的样子。
覆盖func viewDidLoad(){
super.viewDidLoad()
//设置PDF视图
pdfView.displayDirection = .vertical
pdfView.usePageViewController(真)
pdfView.pageBreakMargins = UIEdgeInsets(顶部:0,左侧:0,底部:0,右侧:0)
pdfView.autoScales = true
//加载PDF文件
保护卫队路径= Bundle.main.url(forResource:“ 241_introducing_pdfkit_on_ios”,withExtension:“ pdf”)else {
打印(“找不到文件”)
返回
}
pdfView.document = PDFDocument(URL:路径)
//设置新文档后设置背景色
pdfView.backgroundColor = UIColor(白色:0.95,Alpha:1.0)
}
顺便说一句,在viewDidLoad
放入这么多代码行并不是最好的主意,但这是教程,所以我们就这样吧。
PDF缩略图查看
创建缩略图视图非常容易。 就像我们在上一步中所做的一样:
- 将新的
UIView
添加到ViewController's
视图(不是PDFView's
子视图) - 设置约束
- 在右侧面板的“身份检查器”选项卡中,将
PDFThumbnailView
设置为类名。 - 创建
@IBOutlet
到ViewController的代码