開発

【swift】ちょい足しレシピ①!UIPageViewControllerを無限スクロールにしてみる

毎度どうもこんにちは。iOSをメインに開発しているロッキーカナイです。

今回から「ちょい足しレシピ」なるシリーズを開始しようと思ってます。ここをこう変更するとこういうこともできるよ!という、ちょいとしたことを綴ります。

今回はニュースアプリなどでよく使われているUIPageViewControllerにちょい足しして無限スクロールができるようにする方法を紹介します。

環境 XCode9 / Swift4


・Xcodeのプロジェクトを新規で作る時に出てくるテンプレートのPage-Based Appを使います。


・プロジェクト登録を終えると、ページビューコントローラーが動作する必要最低限のコーディングがされた状態になってます。
関連ファイルは以下の通りです。
Main.storyboard・・・・・レイアウト
RootViewController・・・ページビューコントローラー
DataViewController・・・各ベージビュー
ModelController・・・・・ページ制御ロジック

準備篇として始める前に2点変更をします。
・見やすくする為ページ遷移アニメーションを変更
・今の状態だと1月から12月まであり多いので5ページに減らします

1 見やすくする為ページ遷移アニメーションを変更
RootViewControllerのviewDidLoadメソッド内

2 今の状態だと1月から12月まであり多いので5ページに減らします
ModelControllerのinitメソッドを

・ここまでの動作の動画

1 無限スクロール可能にする
ModelControllerの修正

無限スクロール可能にするために、pageViewController:viewControllerBeforeメソッドとpageViewController: viewControllerAfterメソッドでマイナス値やself.pageData.count以上の値でもスルーするようにします。
本来無効な値が通るので、新規追加したenableDataIndexメソッドで正しいページの要素値を算出することで無限スクロールできるようにしました。

・完成後の動画

これを使ってなにか面白いことができそうですね。
以上、「ちょい足しレシピシリーズ第1弾目のUIPageViewControllerを無限スクロールにしてみる」でした!
はたして第2弾目はあるのでしょうか・・・

ABOUT ME
ロッキーカナイ
ロッキーカナイ
iOSをメインに、SwiftやObjective-C言語の開発をしてます。趣味は猫と戯れる事、PHPを使ったサイト作成やAndroidの開発もしております。ちなみに名前のロッキーカナイはよく昼飯を食べる所w