Swift实现UIScrollView展示多个UIViewController
2016-02-21 11:15
330 查看
效果图:
----------FirstPageViewController-----------
----------SecondPageViewController-----------
----------ThirdPageViewController-----------
---------------PageViewController--------------------
----------FirstPageViewController-----------
override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = UIColor.brownColor() }
----------SecondPageViewController-----------
override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = UIColor.purpleColor() }
----------ThirdPageViewController-----------
override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = UIColor.blueColor() }
---------------PageViewController--------------------
// // PageControlViewController.swift // import UIKit class PageControlViewController: UIViewController, UIScrollViewDelegate { var pageControl: UIPageControl? var scrollView: UIScrollView? var isPageControlUsed = false var screenFrame :CGRect? override func viewDidLoad() { super.viewDidLoad() self.title = "UIPageControl" self.view.backgroundColor = UIColor.whiteColor() screenFrame = UIScreen.mainScreen().bounds let screenWidth = screenFrame!.width let screenHeight = screenFrame!.height var view = UIView(frame: CGRectMake(0, 0, screenWidth, 60)) view.backgroundColor = UIColor.whiteColor() self.view.addSubview(view) scrollView = UIScrollView(frame: CGRectMake(0, 60, screenWidth, screenHeight - 60)) pageControl = UIPageControl(frame: CGRectMake(0, screenHeight - 40, screenWidth, 40)) scrollView!.pagingEnabled = true scrollView!.contentSize = CGSizeMake(screenWidth * 3, screenHeight - 60) let firstViewController = FirstPageViewController() firstViewController.view.frame = CGRectMake(0, 0, screenWidth, screenHeight - 60) let secondViewController = SecondPageViewController() secondViewController.view.frame = CGRectMake(screenWidth, 0, screenWidth, screenHeight - 60) let thirdViewController = ThirdPageViewController() thirdViewController.view.frame = CGRectMake(screenWidth * 2, 0, screenWidth, screenHeight - 60) scrollView!.addSubview(firstViewController.view) scrollView!.addSubview(secondViewController.view) scrollView!.addSubview(thirdViewController.view) scrollView!.delegate = self self.view.addSubview(scrollView!) pageControl!.numberOfPages = 3 pageControl!.currentPage = 0 pageControl!.addTarget(self, action: "pageDidChanged:", forControlEvents: UIControlEvents.ValueChanged) self.view.addSubview(pageControl!) installCodeBarBtn() } func pageDidChanged(obj : UIPageControl) -> Void { var currentPage = obj.currentPage var frame = scrollView!.frame frame.origin.x = (CGFloat)(currentPage) * frame.size.width scrollView!.scrollRectToVisible(frame, animated: true) isPageControlUsed = true } func scrollViewDidScroll(scrollView: UIScrollView) { if(!isPageControlUsed) { let pageWidth = scrollView.frame.size.width let page = floor((scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1 pageControl!.currentPage = (Int)(page) } } func scrollViewDidEndDecelerating(scrollView: UIScrollView) { isPageControlUsed = false } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } func installCodeBarBtn() -> Void { var rightBar = UIBarButtonItem(title: "Code", style: UIBarButtonItemStyle.Done, target: self, action: "toCodeViewPad") self.navigationItem.rightBarButtonItem = rightBar } func toCodeViewPad() -> Void { let codeViewController = PageCodeViewController() self.navigationController!.pushViewController(codeViewController, animated: true) } }
相关文章推荐
- Swift引用OC代码(导入FMDB库)
- swift中代理的使用
- Swift基础学习(2)
- swift语法(二)
- iOS 开发 -- Swift 语法篇 (一) 常量和变量
- Swift笔记 使用CocoaPods来添加开源库
- Swift笔记 使用SwiftData和sqlite的环境设置
- Xcode7及swift2.0更新后toInt()无法使用解决办法
- Swift - whose view is not in the window hierarchy 问题解决方法
- Swift UI搭建新得(-) -- 驾驭 StoryBoard
- swift2.0笔记3
- The Swift Programming Language学习笔记(四)——字符串和字符
- The Swift Programming Language学习笔记(三)——基本运算符
- The Swift Programming Language学习笔记 (二)——基础部分
- The Swift Programming Language学习笔记(一)——初见Swift
- Swift实现自定义的UITabBarController
- swift 实现随机验证码,不区分大小写进行验证
- Swift 枚举Enumerations
- 我为什么要学Swift
- 基本数据类型——swift学习笔记(2)