[iOS] SwiftでSmartNewsみたいな、横スワイプで画面を切り替えるライブラリを作りました

タブ表示、且つ、スワイプで画面を横に切り替えるライブラリをSwiftで作りました。SmartNewsや、AndroidでいうとViewPagerのような動きができるものです。ページ下部に示すRichardKimさんのコードを参考に、というよりそのコードをSwift化したものになります。iOS7,iOS8、iPhone,iPadで動きます。

こんな感じのものです。

githubにUPしております。
https://github.com/hayakawatomoaki/SwipeBetweenViewControllers

基本的には電子書籍のページ送りによく使われるUIPageViewControllerを使ってます。各ControllerをUIPageViewControllerで切り替えています。ViewControllerベースで分離ができるので、ソース可読性や再利用性が楽だと思います。あとこのライブラリ自体はStoryBoardは使用しておりません。各ControllerをStoryBoardで作ってはめ込むもよし、ソースのみでViewControllerを作ってはめ込むもよしです。

作りは単純でこのライブラリ自体は「SwipeBetweenViewControllers.swift」のみなので、このようなタブ横スワイプのUIを作る際にも参考になるかと思います。

参考:
RichardKimさん
https://github.com/cwRichardKim/RKSwipeBetweenViewControllers
 
 
 
 


追記。参考までに。。。
下記は、よりSmartNewsに近いUIを実現しているものです。
サンプルソースではViewControllerを切り替えるのではなく、1つのViewController内でSmartNewsUIを管理しています。この作りに忠実に従うなら、Viewの切り替えになるのかな。ViewControllerで管理したければUIPageViewControllerなどを使う工夫が必要かと思われます。

http://mobiletou.ch/2014/03/scrollmenubardemo-smartnews%E9%A2%A8%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%AB%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%92%E5%AE%9F%E7%8F%BE