今回はPDFKitを使って簡単にPDFを表示させてみました!
##0. PDFKitフレームワークの導入
まずはPDFKitフレームワークをプロジェクトに追加します。General > Linked Frameworks and Libraries からプラスボタンを押し、PDFKitと検索してフレームワークを追加します。
##1. Storyboardの編集
ViewController上にPDFを表示させるためのUIViewとサムネイルを表示させるためのUIViewを配置し、適宜Constrainsをつけておきます。
次に配置したUIViewのカスタムクラスをそれぞれPDFView
、PDFThumbnailView
に変更します。
##2. コーディング
全体のコードは以下の通りです。
ViewControllerに配置した2つのViewの宣言をした後、関連づけを行います。
getUrl()
で表示させるPDFのurlを取得し、showPDF()で取得したurlを元にPDFをViewに表示させています。
今回は横方向にスクロールできるようにするために.displayDirection
を.horizontal
に設定してあります。
import UIKit
import PDFKit
class ViewController: UIViewController {
@IBOutlet weak var pdfView: PDFView!
@IBOutlet weak var pdfThumbnailView: PDFThumbnailView!
var pdfDocument: PDFDocument!
var url: URL?
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.title = "PDFKit Sample"
getUrl()
showPDF()
}
//URLを取得
func getUrl() {
if let path = Bundle.main.path(forResource: "pdfSample", ofType: "pdf") {
url = URL(fileURLWithPath: path)
}
}
//PDFを表示
func showPDF() {
pdfDocument = PDFDocument(url: url!)
//画面サイズに収まるように表示
pdfView.autoScales = true
// 単一ページのみ表示
pdfView.displayMode = .singlePage
//スクロール方向を水平方向へ
pdfView.displayDirection = .horizontal
//余白を入れる
pdfView.displaysPageBreaks = true
pdfView.pageBreakMargins = UIEdgeInsets(top: 10.0, left: 20.0, bottom: 10.0, right: 20.0)
//pageViewControllerを利用して表示(displayModeは無視される)
pdfView.usePageViewController(true)
//上で取得したpdfDocumentをdocumentに設定し、表示させる
pdfView.document = pdfDocument
pdfThumbnailView.layoutMode = .horizontal
pdfThumbnailView.pdfView = pdfView
}
}