UIPageViewController的使用(Swift)

来源:互联网 发布:张家界旅游大数据 编辑:程序博客网 时间:2024/05/17 03:44

UIPageViewController能够让用户在不同的页面内容之间导航,而每个页面的内容也有自己的ViewController. 页面切换有翻页和滚动两种方式.

class ViewController: UIViewController,UIPageViewControllerDataSource,UIPageViewControllerDelegate {        var pageController:UIPageViewController!    var currentPage:Int = 0    var viewControllers = NSMutableArray()        override func viewDidLoad() {        super.viewDidLoad()                //初始化        //transitionStyle:转换样式,有PageCurl和Scroll两种        //navigationOrientation:导航方向,有Horizontal和Vertical两种        //options: UIPageViewControllerOptionSpineLocationKey---书脊的位置        //         UIPageViewControllerOptionInterPageSpacingKey---每页的间距        pageController = UIPageViewController(transitionStyle: .PageCurl, navigationOrientation:.Horizontal, options: [UIPageViewControllerOptionSpineLocationKey:NSNumber(float: 10)])        pageController.delegate = self;//设置delegate,提供展示相关的信息和接收手势发起的转换的通知        pageController.dataSource = self;//设置datasource,提供展示的内容                currentPage = 0        //初始化要展示的Controller,自定义        for index in 0...9 {            let storyboard = UIStoryboard(name: "Main", bundle: nil)            let pViewController = storyboard.instantiateViewControllerWithIdentifier("PageViewController") as PageViewController            viewControllers.addObject(pViewController)            pViewController.numberLabel?.text = "第\(currentPage+1)页"        }        //展示之前进行初始化第一个Controller, 单个显示放一个,两个显示则放两个,和样式有关        pageController.setViewControllers([viewControllers.objectAtIndex(0)], direction: .Forward, animated: false) { (b:Bool) -> Void in                    }        //UIPageController必须放在Controller Container中        self.addChildViewController(pageController)        self.view.addSubview(pageController.view)                currentPage = 0    }        //------------Delegate--------------    func pageViewController(pageViewController: UIPageViewController, willTransitionToViewControllers pendingViewControllers: [AnyObject]) {            }        func pageViewController(pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [AnyObject], transitionCompleted completed: Bool) {            }        func pageViewController(pageViewController: UIPageViewController, spineLocationForInterfaceOrientation orientation: UIInterfaceOrientation) -> UIPageViewControllerSpineLocation {        return .Min    }        func pageViewControllerSupportedInterfaceOrientations(pageViewController: UIPageViewController) -> Int {        return 2    }        func pageViewControllerPreferredInterfaceOrientationForPresentation(pageViewController: UIPageViewController) -> UIInterfaceOrientation {        return .Portrait    }        //-------------DataSource-----------------            func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {        currentPage--        if currentPage < 0 {            currentPage = 0            return nil        }        return viewControllers[currentPage] as? UIViewController    }        func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {        currentPage++        if currentPage > 9 {            currentPage = 9            return nil        }        return viewControllers[currentPage] as? UIViewController    }        func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int {        return pageController.viewControllers.count    }        func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int {        return currentPage    }}


0 0
原创粉丝点击