A container which is easy to add children viewcontrollers and supports horizontal scroll.
letpageViewController=ICPageViewController()overridefunc viewDidLoad(){
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
pageViewController.pageViewDelegate =selfself.addChildViewController(pageViewController)self.view.addSubview(pageViewController.view)
pageViewController.didMove(toParentViewController:self)}overridefunc viewDidLayoutSubviews(){
pageViewController.view.frame =self.view.bounds
}func numberOfItems(in pageViewController:ICPageViewController)->Int{return10}func pageViewController(_ pageViewController:ICPageViewController, viewControllerForItemAt index:Int)->UIViewController{letviewController=self.storyboard?.instantiateViewController(withIdentifier:"demoViewController")as?SubViewController
viewController?.label ="sub viewcontroller \(index)"switch index {case0:
viewController?.view.backgroundColor =.blue
case1:
viewController?.view.backgroundColor =.red
case2:
viewController?.view.backgroundColor =.gray
default:
viewController?.view.backgroundColor =.white
}return viewController!
}pod 'ICPageViewController'
