UIScrollView

     //返回按钮事件
     @IBAction func backButtonClick()
     {
         self.navigationController?.popViewControllerAnimated(true)
     }

     //创建滚动视图
     var mainScrollView:UIScrollView!

     var view1:UIView!
     var view2:UIView!
     var view3:UIView!

     //创建UIPageControl实例
     var pageCtrl:UIPageControl!

     override func viewDidLoad() {
         super.viewDidLoad()

         titleLabel.text = titleString

         // Do any additional setup after loading the view.

         //创建滚动视图
         mainScrollView = UIScrollView(frame: CGRectMake(, , , ))

         //设置背景色
         mainScrollView.backgroundColor = UIColor.grayColor()

         //添加到视图上
         self.view.addSubview(mainScrollView)

         //创建3个视图,添加到ScrollView上
         view1 = UIView(frame: CGRectMake(, , , ))
         view1.backgroundColor = UIColor.redColor()
         mainScrollView.addSubview(view1)

         view2 = UIView(frame: CGRectMake(, , , ))
         view2.backgroundColor = UIColor.greenColor()
         mainScrollView.addSubview(view2)

         view3 = UIView(frame: CGRectMake(, , , ))
         view3.backgroundColor = UIColor.blueColor()
         mainScrollView.addSubview(view3)

         //设置scrollView的容器大小
         mainScrollView.contentSize = CGSizeMake(*, )

         //设置滚动条风格
         mainScrollView.indicatorStyle = UIScrollViewIndicatorStyle.White

         //设置水平方向滚动条是否可见
         mainScrollView.showsHorizontalScrollIndicator = false

         //设置垂直方向滚动条是否可见
         mainScrollView.showsVerticalScrollIndicator = false

         //设置成翻页滚动
         mainScrollView.pagingEnabled = true

         mainScrollView.delegate = self

         mainScrollView.maximumZoomScale = 2.0;//允许放大2倍
         mainScrollView.minimumZoomScale = 0.5;//允许放大到0.5倍

         //页面控制器

         //创建UIPageControl实例
         pageCtrl = UIPageControl(frame: CGRectMake(, , , ))

         //添加到视图
         self.view.addSubview(pageCtrl)

         //设置总页数
         pageCtrl.numberOfPages = 

         //当前显示到第几页面
         pageCtrl.currentPage = 

         //添加事件
         pageCtrl.addTarget(self, action: "pageTurn:", forControlEvents: UIControlEvents.ValueChanged)

     }

     override func didReceiveMemoryWarning() {
         super.didReceiveMemoryWarning()
         // Dispose of any resources that can be recreated.
     }

     /*
     // MARK: - Navigation

     // In a storyboard-based application, you will often want to do a little preparation before navigation
     override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
         // Get the new view controller using segue.destinationViewController.
         // Pass the selected object to the new view controller.
     }
     */

     //MARK: - UIScrollViewDelegate

     func scrollViewDidScroll(scrollView: UIScrollView)
     {
         //视图滚动中一直触发
     }

     func scrollViewWillBeginDragging(scrollView: UIScrollView)
     {
         //刚开始拖动视图时触发一次
     }

     func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>)
     {
         //将要结束拖动触发一次
     }

     func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool)
     {
         //拖动结束,触发一次
     }

     func scrollViewWillBeginDecelerating(scrollView: UIScrollView)
     {
         //拖动接触后,开始减速
     }

     func scrollViewDidEndDecelerating(scrollView: UIScrollView)
     {
         //减速完毕,恢复到静止状态

        //获取scrollView视图滚动的x坐标
         var offX:CGFloat = scrollView.contentOffset.x

         //计算当前是第几屏
         var index:Int = (Int)(offX / )

         //设置分页指示器currentPage值
         pageCtrl.currentPage = index;
     }

     //缩放功能-返回缩放的视图
     func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView?
     {
         //获取当前滚动视图移动的X坐标
         var offsetX = scrollView.contentOffset.x
         println(offsetX)

          //如果没有滚动,返回view1
         {
             return view1
         }
          //滚动300,返回view2
         {
             return view2
         }
          //滚动600,返回view3
         {
             return view3
         }

         return nil
     }

     func scrollViewDidZoom(scrollView: UIScrollView)
     {
         //缩放过程中一直调用
     }

     func scrollViewWillBeginZooming(scrollView: UIScrollView, withView view: UIView!)
     {
         //开始缩放,调用一次
     }

     func scrollViewDidEndZooming(scrollView: UIScrollView, withView view: UIView!, atScale scale: CGFloat)
     {
         //缩放结束,调用一次
     }

     func scrollViewDidEndScrollingAnimation(scrollView: UIScrollView)
     {
         println("scrollViewDidEndScrollingAnimation")
     }

     func scrollViewShouldScrollToTop(scrollView: UIScrollView) -> Bool
     {
         return false
     }

     func scrollViewDidScrollToTop(scrollView: UIScrollView)
     {
         println("scrollViewDidScrollToTop")
     }

     //MARK: - 

     //分页控制器value改变事件
     func pageTurn(sender:AnyObject?)
     {
         //获取分页控制器
 //        var newPageCtl = sender as UIPageControl

         //2015年5月2后修改
         var newPageCtl = sender as! UIPageControl

         //获取分页控制器当前页
         var index = newPageCtl.currentPage

         //设置ScrollView的x移动距离
         mainScrollView.contentOffset = CGPointMake((CGFloat)( * index), )
     }
 

iOS开发——UI篇Swift篇&UIScrollView的更多相关文章

  1. iOS开发——技术精华Swift篇&Swift 2.0和Objective-C2.0混编之第三方框架的使用

    swift 语言是苹果公司在2014年的WWDC大会上发布的全新的编程语言.Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题.Swift语言采用安全编程模式,且引 ...

  2. iOS开发——新特性Swift篇&Swift 2.0 异常处理

    Swift 2.0 异常处理 WWDC 2015 宣布了新的 Swift 2.0. 这次重大更新给 Swift 提供了新的异常处理方法.这篇文章会主要围绕这个方面进行讨论. 如何建造异常类型? 在 i ...

  3. iOS开发——UI精选OC篇&UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍

    UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍 一:UIApplication:单例(关于单例后面的文章中会详细介绍,你现在只要知道 ...

  4. iOS开发——网络编程Swift篇&Alamofire详解

    Alamofire详解 预览图 Swift Alamofire 简介 Alamofire是 Swift 语言的 HTTP 网络开发工具包,相当于Swift实现AFNetworking版本. 当然,AF ...

  5. ios开发——实用技术总结Swift篇&swift常用开发技术总结

    swift常用开发技术总结 懒加载:属性,数组(字典),控件... 数组(懒加载): lazy var shops:Array<Dictionary<String, String>& ...

  6. iOS开发——网络编程Swift篇&(八)SwiftyJSON详解

    SwiftyJSON详解 最近看了一些网络请求的例子,发现Swift在解析JSON数据时特别别扭,总是要写一大堆的downcast(as?)和可选(Optional),看?号都看花了.随后发现了这个库 ...

  7. ios开发——实用技术篇Swift篇&地址薄、短信、邮件

    //返回按钮事件 @IBAction func backButtonClick() { self.navigationController?.popViewControllerAnimated(tru ...

  8. iOS开发——图形编程Swift篇&CAShapeLayer实现圆形图片加载动画

    CAShapeLayer实现圆形图片加载动画 几个星期之前,Michael Villar在Motion试验中创建一个非常有趣的加载动画. 下面的GIF图片展示这个加载动画,它将一个圆形进度指示器和圆形 ...

  9. iOS开发零基础--Swift篇 元组

    元组的介绍 元组是Swift中特有的,OC中并没有相关类型 它是什么呢? 它是一种数据结构,在数学中应用广泛 类似于数组或者字典 可以用于定义一组数据 组成元组类型的数据可以称为“元素” 元组的定义 ...

  10. iOS开发零基础--Swift篇 循环

    循环的介绍 在开发中经常会需要循环 常见的循环有:for/while/do while. 这里我们只介绍for/while,因为for/while最常见 for循环的写法 最常规写法 // 传统写法 ...

随机推荐

  1. c#中格式化导出Excel数据

    在项目开发过程中经常会遇到数据导出Excel.如果只是导出数据就好办了.但往往用户会有各种格式要求.加粗.边框.合并单元格.汇总等功能. 以下的方法是基于Excel模版方式写入数据导出的功能.可以最大 ...

  2. hadoop的ganglia数据监控

    如果我们想知道当前运行的hadoop集群的状态,可以通过hadoop的客户端和web页面来获得,但是如果我们想知道当前集群的繁忙程度,如读写次数,这些工具就办不到了.幸运的是hadoop提供了一种ga ...

  3. Yii 1.1 DAO绑定参数实例

    <?php $sql = "SELECT * FROM admin_user WHERE user_name=:uname AND password LIKE :c"; $c ...

  4. Blog 入职新公司的一些吐槽!

    入职公司已经两个星期了,说真的也很惭愧.我们这小批入职的一共六个人,五个人是实习生,我是唯一一个社招. 所以 我要吐槽 !! 吐槽1 人家都是90后(TAT) 其实真的不要觉得年龄是压力!看看路边KF ...

  5. css 样式大全

    字体属性:(font) 大小 {font-size: x-large;}(特大) xx-small;(极小) 一般中文用不到,只要用数值就可以,单位:PX.PD 样式 {font-style: obl ...

  6. Openstack之Swift架构(Cloud Storage)

    Swift是OpenStack的子项目之一,也称为对象储存,适用于储存永久类型的静态数据,例如:虚拟机镜像文件.图片.存档备份等 复制的三个副本如何联系在一起? 让我们用一些具体场景和介绍一些组件,来 ...

  7. 第二百三十三天 how can I 坚持

    刚才看了场球,亚冠恒大和迪拜阿尔阿赫利,1:0,刚打开电脑就看到了进球,还是很幸运的. 在家待了一天,阴天,预报明天又中到大雪 啊,下吧.好希望下场大雪啊. 最近一直感觉好累,写代码不容易啊 ,还是因 ...

  8. TDBXCommand TDBXReader

    TDBXCommand  *cmd; cmd= FDBXConnection->CreateCommand(); cmd->CommandType=TDBXCommandTypes_DSS ...

  9. ms-class的进化

    ms-class是avalon用得最多的几个绑定之一,也正因为如此其功能一直在扩充中.根据时期的不同,分为旧风格与新风格两种. 旧风格是指正在ms-class后面跟着类外,然后在绑定值中添加表达式,即 ...

  10. SCU 4440 分类: ACM 2015-06-20 23:58 16人阅读 评论(0) 收藏

    SCU - 4440 Rectangle Time Limit: Unknown   Memory Limit: Unknown   64bit IO Format: %lld & %llu ...