创建水平页面视图控制器的简单方法(无限页面)

  1. 让我们创建一个新项目,我选择单视图应用程序来更好地演示

StackOverflow 文档

  1. 将页面视图控制器拖到故事板上,之后应该更改两件事:
    1. 将页面视图控制器设置为初始视图控制器
    2. 更改过渡样式以滚动

StackOverflow 文档

  1. 你需要创建一个 UIPageViewController 类,然后将其设置为故事板上的页面视图控制器的自定义类

  2. 将此代码粘贴到你的 UIPageViewController 类中,你应该获得一个色彩缤纷的无限分页应用:)

    class PageViewController: UIPageViewController, UIPageViewControllerDataSource {
    
        override func viewDidLoad() {
            self.dataSource = self
            let controller = createViewController()
            self.setViewControllers([controller], direction: .forward, animated: false, completion: nil)
        }
    
        func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
            let controller = createViewController()
            return controller
        }
    
        func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
            let controller = createViewController()
            return controller
        }
    
        func createViewController() -> UIViewController {
            var randomColor: UIColor {
                return UIColor(hue: CGFloat(arc4random_uniform(360))/360, saturation: 0.5, brightness: 0.8, alpha: 1)
            }
            let storyboard = UIStoryboard(name: "Main", bundle: nil)
            let controller = storyboard.instantiateViewController(withIdentifier: "View Controller")
            controller.view.backgroundColor = randomColor
            return controller
        }
    }
    

这是最终项目的样子,每个卷轴都有一个不同颜色的视图控制器:

StackOverflow 文档