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的代码