このページの本文へ

Swift Playgroundsで学ぶiOSプログラミング第71回

スクロールやページカールで画面を移動

ページをめくる感覚でビューコントローラーを切り替える方法

2018年01月09日 18時00分更新

文● 柴田文彦 編集●吉田ヒロ

  • この記事をはてなブックマークに追加
  • 本文印刷

 このところ、タブバー、ツールバーと取り上げてきて、ある意味「バー」シリーズとなっていました。今回は幸か不幸か、そのシリーズというわけではありません。ただし、前回の最後で予告したように、iOSのユーザーインターフェースの基本的な機能を取り上げる、という点では共通しています。

 今回取り上げるのはページビューコントローラー(UIPageViewController)です。アプリを最初に起動したとき、本来の画面を表示する前に、数ページからなる説明をユーザーに読ませるようなものがありますが、そうした場面で使える機能です。その場合、見た目としては、ウェブページを左右、または上下にスクロールしながらずらしていく感じのインターフェースとなっています。

 もう1つ、何十ページ、何百ページもあるようなドキュメントを、1ページずつめくっていくような感覚で操作できるインターフェースを実現することも可能です。この場合は、ページがカールしながら、しかも裏面には表面の文字や画像が裏写りしているような表現も含む凝ったアニメーションが表示されます。こちらは、電子書籍などのアプリに適したものでしょう。

 ページビューコントローラーは、ページを切り替える際に、ビューコントローラーごと切り替えるという点で、タブバーなどとの共通点もあります。しかし、プログラミングの考え方はまったく違っています。今回は、とりあえず最小限のコードでページビューコントローラーを動かすことを目標として、プログラムを書き始めましょう。

ページビューコントローラーは一種のビューコントローラーだ

 上で述べたように、ページビューコントローラーは、ほかのビューをビューコントローラーごと切り替えるものです。また、名前からもわかるように、それ自身も一種のビューコントローラーです。ということは、ページビューコントローラーのオブジェクトは、そのままプレイグラウンドのライブビューに張り付けられることになります。さっそく、最小限のコードで、それを記述してみましょう。

ページビューコントローラーは、一種のビューコントローラーなので、オブジェクトを作成してプレイグラウンドのライブビューに張り付ければ、とりあえず何かが表示されるはずです

 まず、必要最小限のオプションを指定してUIPageViewControllerのオブジェクトを作成し、それをプレイグラウンドの現在のページのliveViewプロパティに代入しています。これを動かすと、ライブビューには真っ黒なビューが表示されます。

空のページビューコントローラーを作ってライブビューに設定してみると、そこに表示されるのは真っ黒なビューでした。これは通常は決して表示されることのない、ページビューコントローラー独自のビューです

 これはページビューコントローラーが持つ独自のビューのはずですが、これだけでは確信が持てないという人もいるでしょう。そこで、ページビューコントローラー自身のビューの背景色を設定してみます。

試しに、ページビューコントローラー独自のビューの背景色を設定してみると、その色がライブビューに反映されます。これだけでは、ページビューコントローラーは単なるビューコントローラーとしてしか機能していません

 すると、当然ながらそのビューの色が画面に表示されます。しかし、普通はページビューコントローラーの独自のビューを表示するという使い方はしません。それは、ナビゲーションコントローラーの独自のビューを表示しないのと同じです。ということで、次に、ページビューコントローラーに他のビューコントローラーを設定する方法を見ていきましょう。

この連載の記事

週間ランキングTOP5

ASCII倶楽部会員によく見られてる記事はコレだ!

ASCII倶楽部の新着記事

会員専用動画の紹介も!