現在、UIPageViewControllerを使用して、無限画面遷移を行なってます。
これにタイマーを設定して、5秒毎に画面遷移を行うようにしたいです。
もちろん、スワイプでの画面遷移も機能するようにしたいです。
どのようにすればいいのか全く見当がつきません。
どなたかご教授願います。
宜しくお願い致します
swift
1class PageViewController: UIPageViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate { 2 3 let pageList = ["firstViewController", "secondViewController", "thirdViewController"] 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 8 self.automaticallyAdjustsScrollViewInsets = false 9 10 //最初のビューコントローラーを取得する。 11 let controller = storyboard!.instantiateViewController(withIdentifier: pageList.first!) 12 13 //ビューコントローラーを表示する。 14 self.setViewControllers([controller], direction: .forward, animated: true, completion:nil) 15 16 self.dataSource = self 17 self.delegate = self 18 19 } 20 21 override func didReceiveMemoryWarning() { 22 super.didReceiveMemoryWarning() 23 // Dispose of any resources that can be recreated. 24 } 25 26 27 //右ドラッグ時の呼び出しメソッド 28 func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? { 29 30 //現在のビューコントローラーのインデックス番号を取得する。 31 let index = pageList.index(of: viewController.restorationIdentifier!)! 32 if (index > 0) { 33 //前ページのビューコントローラーを返す。 34 return storyboard!.instantiateViewController(withIdentifier: pageList[index-1]) 35 } else if (index == 0) { //もし一番最初の画面なら最後の画面を持ってくる 36 return storyboard!.instantiateViewController(withIdentifier: pageList[2]) 37 } 38 return nil 39 } 40 41 42 43 //左ドラッグ時の呼び出しメソッド 44 func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? { 45 46 //現在のビューコントローラーのインデックス番号を取得する。 47 let index = pageList.index(of: viewController.restorationIdentifier!)! 48 if (index < pageList.count-1) { 49 //次ページのビューコントローラーを返す。 50 return storyboard!.instantiateViewController(withIdentifier: pageList[index+1]) 51 } else if (index == pageList.count-1) { 52 return storyboard!.instantiateViewController(withIdentifier: pageList[0]) 53 } 54 55 return nil 56 } 57 58}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/15 06:34
2017/02/15 07:06
2017/02/15 07:19
2017/02/15 07:22
2017/02/15 07:28
2017/02/15 09:21