iPhone 6をiOS11にしてみたのですが、目玉機能に非対応...
かわりに、PDFKitを使ってみました。
オリジナルのPDFビューアも作れたりするみたいですが、今回はとりあえずPDFを表示してみます。
PDFを表示するためにWebViewを使う必要がなくなります。
環境
- Xcode 9.0 beta (9M136h)
- iOS 11.0 (15A5278f)
コード
東京メトロの路線図のPDFを表示してみます。
ViewController.swift
import UIKit
import PDFKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let pdfView = PDFView(frame: view.frame)
// Web上のPDFの場合
let pdfURL = URL(string: "http://www.tokyometro.jp/station/common/pdf/network1.pdf")!
// ローカルのPDFの場合
let pdfURL = URL(fileURLWithPath: Bundle.main.path(forResource: "metronetwork", ofType: "pdf")!)
let document = PDFDocument(url: pdfURL)
pdfView.document = document
pdfView.backgroundColor = .lightGray
// PDFの拡大率を調整する
pdfView.autoScales = true
// 表示モード
pdfView.displayMode = .singlePageContinuous
view.addSubview(pdfView)
}
}
autoScalesをtrueにすると、PDFのサイズを自動で調整してくれます。
デフォルトはfalseです。
PDFの表示モード(PDFDisplayMode)は4種類あります。
デフォルトはsinglePageContinuousです。
PDFDisplayMode
public enum PDFDisplayMode : Int {
// 1ページずつ表示される
case singlePage
// すべてのページが連続表示される
case singlePageContinuous
// 見開きで表示される
case twoUp
// 見開きですべてのページが連続表示される
case twoUpContinuous
}
実行結果
拡大・縮小・複数ページあればスクロールもできます。