「Ios/swift/UIPageViewController」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「==UIPageViewControllerとは== 横スワイプによるページ送り ==サンプル== #初期のViewControllerとは別に2つUIViewControllerをstoryboardに追加...」) |
|||
(同じ利用者による、間の6版が非表示) | |||
行5: | 行5: | ||
#初期のViewControllerとは別に2つUIViewControllerをstoryboardに追加する | #初期のViewControllerとは別に2つUIViewControllerをstoryboardに追加する | ||
#それぞれクラス名をViewControllerとSecondViewControllerとThirdControllerとする | #それぞれクラス名をViewControllerとSecondViewControllerとThirdControllerとする | ||
− | # | + | #それぞれのStroyboardIdをFirstViewControllerIdとSecondViewControllerIdとThirdViewControllerIdとする |
#UIPageViewControllerをstoryboardに追加する | #UIPageViewControllerをstoryboardに追加する | ||
#追加したUIPageViewControllerのクラス名をPageViewControllerとする | #追加したUIPageViewControllerのクラス名をPageViewControllerとする | ||
行18: | 行18: | ||
override func didReceiveMemoryWarning() { | override func didReceiveMemoryWarning() { | ||
super.didReceiveMemoryWarning() | super.didReceiveMemoryWarning() | ||
− | |||
− | |||
− | |||
} | } | ||
private func getFirstViewController() -> UIViewController { | private func getFirstViewController() -> UIViewController { | ||
return storyboard!.instantiateViewControllerWithIdentifier("FirstViewControllerId") | return storyboard!.instantiateViewControllerWithIdentifier("FirstViewControllerId") | ||
+ | } | ||
+ | private func getSecondViewController() -> UIViewController { | ||
+ | return storyboard!.instantiateViewControllerWithIdentifier("SecondViewControllerId") | ||
} | } | ||
private func getThirdViewController() -> UIViewController { | private func getThirdViewController() -> UIViewController { | ||
return storyboard!.instantiateViewControllerWithIdentifier("ThirdViewControllerId") | return storyboard!.instantiateViewControllerWithIdentifier("ThirdViewControllerId") | ||
} | } | ||
− | // | + | // 前へ |
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? { | func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? { | ||
if viewController.isKindOfClass(ThirdViewController) { | if viewController.isKindOfClass(ThirdViewController) { | ||
行38: | 行38: | ||
} | } | ||
} | } | ||
− | // | + | // 次へ |
func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? { | func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? { | ||
if viewController.isKindOfClass(ViewController) { | if viewController.isKindOfClass(ViewController) { | ||
行49: | 行49: | ||
} | } | ||
} | } | ||
+ | |||
+ | 参考:http://qiita.com/Takeshi_Akutsu/items/dbf54df8e8a50e8ed5be | ||
+ | |||
+ | ==ページ送りのアニメーションスタイルを"紙めくり"から"スクロール"に変更する方法== | ||
+ | storyboardのPageViewControllerのプロパティのtransition_styleを"Page Curl"から"Scroll"に | ||
+ | |||
+ | 参考:http://stackoverflow.com/questions/24577403/programmatically-set-uipageviewcontroller-transition-style-to-scroll |
2016年6月28日 (火) 00:14時点における最新版
UIPageViewControllerとは
横スワイプによるページ送り
サンプル
- 初期のViewControllerとは別に2つUIViewControllerをstoryboardに追加する
- それぞれクラス名をViewControllerとSecondViewControllerとThirdControllerとする
- それぞれのStroyboardIdをFirstViewControllerIdとSecondViewControllerIdとThirdViewControllerIdとする
- UIPageViewControllerをstoryboardに追加する
- 追加したUIPageViewControllerのクラス名をPageViewControllerとする
- PageViewControllerを初期起動するように"Is InItial View Controller"をonにする
import UIKit class PageViewController: UIPageViewController, UIPageViewControllerDataSource { override func viewDidLoad() { super.viewDidLoad() self.setViewControllers([getFirstViewController()], direction: .Forward, animated: true, completion: nil) self.dataSource = self } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } private func getFirstViewController() -> UIViewController { return storyboard!.instantiateViewControllerWithIdentifier("FirstViewControllerId") } private func getSecondViewController() -> UIViewController { return storyboard!.instantiateViewControllerWithIdentifier("SecondViewControllerId") } private func getThirdViewController() -> UIViewController { return storyboard!.instantiateViewControllerWithIdentifier("ThirdViewControllerId") } // 前へ func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? { if viewController.isKindOfClass(ThirdViewController) { return getSecondViewController() } else if viewController.isKindOfClass(SecondViewController) { return getFirstViewController() } else { return nil } } // 次へ func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? { if viewController.isKindOfClass(ViewController) { return getSecondViewController() } else if viewController.isKindOfClass(SecondViewController) { return getThirdViewController() } else { return nil } } }
参考:http://qiita.com/Takeshi_Akutsu/items/dbf54df8e8a50e8ed5be
ページ送りのアニメーションスタイルを"紙めくり"から"スクロール"に変更する方法
storyboardのPageViewControllerのプロパティのtransition_styleを"Page Curl"から"Scroll"に