iOS 技術

【iOS開発】Swiftで簡易PDFビューアーを作成(PDFを読み込み、表示)

突然ですが、仕事で急遽必要になったためSwiftで簡易PDFビューアーを作りました。

実際はもう少し色々機能があったのですが、「PDFを表示する」という目的に絞ってスリム化しました。

機能としては以下のようなものです。

①初期画面に「PDF表示」のボタンを配置し、クリックすると「PDF閲覧画面」に遷移。
②PDF閲覧画面にてPDFを表示。ページ切り替えは上下のスワイプにて行う。

ネットでpdfを表示するような記事はヒットするんですが、古いものが多かったので一応Swift3に対応しているものとして、参考となれば幸いです。

プロジェクトの作成

まずは新規で「プロジェクト」を作成します。

Xcodeを立ち上げ、「Create a new Xcode project」をクリックします。

xcode1

次はプロジェクトのタイプを選択します。

「Single View Application」をクリックします。

xcode2

あとはアプリやデベロッパーの名称、言語、対象デバイスを設定します。今回はiPad向けです。

xcode3

PDFの表示

下準備が終わったら、次は実際にPDFを表示するロジックを実装していきます。

以下のような構成です。

xcode4

ViewController.swift

ViewController.swiftはプロジェクトを作成すると、自動的に生成されます。

今回はViewController.swiftには一切手を加えていません。

PDFShowViewController.swift

 

PDFShowViewController.swiftを追加します。 このクラスでPDFの表示を行います。

下の部分がメインの処理です。

①PDFファイルの読み込み
②ページ数を読み込んで設定
③PDFViewのインスタンス化
④PDFViewを画面に表示

といった事をやっています。

PDFViewはUIViewを継承したPDFの表示に特化したクラスです。

PDFView.swift

viewに何か描画したい場合はdrawメソッドを呼び出します。 コンテキストを取得して、サイズやスケールなどの設定、最後にdrawPDFPageメソッドにてPDFを表示します。

Define.swift

おまけです。

storyboard

クラスを実装し終わったら、次はstoryboardで画面遷移やアクションなどを定義していきます。

といっても、今回は非常にシンプルなアプリなのでやる事はそれほどないです。

まずは「View Controller」のオブジェクトをstoryboardに配置します。

必要なのはさきほど追加したPDFShowViewController.swiftに対応するオブジェクトです。

配置する対象はMain.storyboardです。

xcode5

これをドラッグでstoryboard内の適当な場所に置いてやります。

次はそのオブジェクトとPDFShowViewController.swiftを関連付けます。

xcode6

classにPDFShowViewControllerを指定します。

次はViewControllerからPDFShowViewControllerへの遷移を定義します。

まずはViewControllerにボタンを配置します。さっきの「View Controller」のオブジェクトを配置したのと同じやり方で、今度は「Button」を置いてやります。仮に「PDF表示」としています。

xcode7

そして、PDFShowViewControllerの上部の一番左のシンボルを右クリックします。

xcode8

するとメニューが出てきますので、その中の「show」の右端のマルをドラッグして、さきほど追加したView Controllerのボタンに紐づけます。

xcode9

スワイプのアクションも同じように、スワイプのオブジェクトを「PDFShowViewController」に追加し、アクションを紐づけます。

これでstoryboard上での各種定義は完了です。

動作確認

それでは早速動かしてみましょう。

確認1

PDF表示をタップすると、PDFが表示されます。

確認2

ソースコードをGitHubにあげていますので、試してみたい方は以下からどうぞ。

PDFReader

-iOS, 技術

© 2023 FIRE達成のフリーランスエンジニアブログ