今回は、スワイプでページ遷移できるタブ機能を実装するためのライブラリをご紹介。
この記事を投稿している 2020年4月9日時点で 4日前に更新されているのでかなり新しいライブラリです。
以前は PageMenu というライブラリを利用していましたが、エラーが発生して対処できなかったので、サクッと乗り換えました。
GitHub のページはこちらから。
GitHub – rechsteiner/Parchment: A paging view controller with a highly customizable menu
https://github.com/rechsteiner/Parchment
まず、CocoaPods
を使って、ライブラリをインストールします。
Podfile に下記を追加して、iTerm
などのコマンドラインツールで pod install
を実行してください。
pod 'Parchment'
なお、こちらのライブラリは iOS 8.2 以上が必要です。
それより下だと、pod install
を実行したときにエラーになりますので、ご注意ください。
インストールが完了したら、プロジェクトを Xcode で開き、任意のコントローラに実装していきます。
import Parchment
を追加します。
で、タブで表示したい UIViewController
を下記のように追加していきます。
let firstViewController = UIViewController() firstViewController.title = "タブ1" let secondViewController = UIViewController() secondViewController.title = "タブ2" // PagingViewController に ViewController を格納 let pagingViewController = PagingViewController(viewControllers: [ firstViewController, secondViewController ]) // View に追加 self.addChild(pagingViewController) self.view.addSubview(pagingViewController.view) pagingViewController.didMove(toParent: self) pagingViewController.view.translatesAutoresizingMaskIntoConstraints = false NSLayoutConstraint.activate([ pagingViewController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor), pagingViewController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor), pagingViewController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor), pagingViewController.view.topAnchor.constraint(equalTo: view.topAnchor) ])
コードは以上です。
あとはビルドして実行して動作を確認してください。
タブを追加したいだけなら UITabBarController
もあるのですが、これは基本的にページ下部にタブが表示されるし、自分でスワイプ機能を実装するのは時間がかかるかと思い、こちらのライブラリを導入しました。
見た目もシンプルだし、実装もそこまで難しくなかったのでオススメです!
以上、Swift でスワイプでページ遷移できる TabView を実装するためのライブラリ「Parchment」のご紹介でした。
ご参考になれば幸いです。