Swift UIScrollView 属性及代理方法

来源:互联网 发布:java服务器开发与c 编辑:程序博客网 时间:2024/05/19 02:16
//创建滚动视图        let scrollView = UIScrollView()        //设置尺寸        scrollView.frame = CGRectMake(0, 100, self.view.frame.size.width, 200)        //设置背景色        scrollView.backgroundColor = UIColor.redColor()        //添加视图        self.view.addSubview(scrollView)        //设置滚动条        //是否显示水平滚动条        scrollView.showsHorizontalScrollIndicator = true        //是否显示竖直滚动条        scrollView.showsVerticalScrollIndicator = false        //设置分页滚动        scrollView.pagingEnabled = true        //设置是否可以拉出空白区域        scrollView.bounces = true        //默认是false。如果是true并且bounces也是true,即使内容尺寸比scrollView的尺寸小,也能垂直推动        scrollView.alwaysBounceVertical = false        //默认是false。如果是true并且bounces也是true,即使内容尺寸比scrollView的尺寸小,也能水平推动        scrollView.alwaysBounceHorizontal = false        //允许滑动视图本身,如果设为false就不能触发拖动代理事件        scrollView.scrollEnabled = false        //在scrollView的内容周围添加一个附件的区域        scrollView.contentInset =  UIEdgeInsetsMake(100, 50, 50, 50)        //调整指示器(滚动条)的位置        scrollView.scrollIndicatorInsets = UIEdgeInsetsMake(30, 30, 30, 30)        //设置指示器(滚动条)的样式        scrollView.indicatorStyle = UIScrollViewIndicatorStyle.Black//黑色        //最小的缩放倍数,默认值为1.0        scrollView.minimumZoomScale = 0.2        //放大的缩放倍数,默认值为1.0        scrollView.maximumZoomScale = 100        //创建一个数组,存储三张图片        let imagesArray = ["DOVE 2","DOVE 5","DOVE 10"]        //循环创建ImageView        for i in 0..<imagesArray.count {            //创建imageView            let imageView = UIImageView(frame: CGRectMake(CGFloat (i)*scrollView.frame.size.width, 0, scrollView.frame.size.width, scrollView.frame.size.height))            //添加图片            imageView.image=UIImage(named: imagesArray[i])            //打开用户交互            imageView.userInteractionEnabled = true            //把imageView添加到滚动视图上            scrollView.addSubview(imageView)        }        //设置内容区域        scrollView.contentSize = CGSizeMake(scrollView.frame.size.width*CGFloat(imagesArray.count),scrollView.frame.size.height)        //设置代理        scrollView.delegate = self        //设置directionalLockEnabled        /*         如果这个性能被设置成false,scrollView会被允许在水平和垂直两个方向滚动。如果设置性能是true并且用户开始在一个方向拖动时(水平方向或垂直方向),滚动视图就不能在另一个方向滚动。如果拖动的方向时斜对角线方向,拖动事件将会被锁住并且用户可以在任何方向拖动,直到拖动事件结束。这个属性的默认值是false。         */        scrollView.directionalLockEnabled = true        //设置偏移量,以固定的速度设置成新的偏移量        scrollView.setContentOffset(CGPointMake(10, 20), animated: false)        //滚动矩形区域到可见的区域,如果完全可见就不做任何操作        scrollView.scrollRectToVisible(CGRectMake(0, 0, 100, 300), animated: false)        //短时间显示滚动条,当你        scrollView.flashScrollIndicators()        //当用户触摸到scrollView时(即使还没有开始拖动ScrollView)就会返回一个true值        scrollView.tracking        //当用户已经开始拖动时会返回一个true值,这可能会需要一点时间或者与拖动一段距离        scrollView.dragging        //当用户不再拖动或者不再触摸scrollView(但是scrollView仍在滑动)         scrollView.decelerating        //默认值为true        scrollView.delaysContentTouches = true        //默认值为true。如果为false,一旦我们开始追踪并且触摸移动,我们无法拖动        scrollView.canCancelContentTouches = true        //如果手势已经被传递到了scollView的父View上,在视图开始滚动之前毁掉用这个方法。如果这个方法返回的是false,scrollView不会滚动并且这个手势会继续向父View传递//        scrollView.touchesShouldCancelInContentView(<#T##view: UIView##UIView#>)        //设置缩放//        scrollView.setZoomScale(<#T##scale: CGFloat##CGFloat#>, animated: <#T##Bool#>)//        scrollView.zoomToRect(<#T##rect: CGRect##CGRect#>, animated: <#T##Bool#>)        //默认为true。如果设置,当手势起作用时用户会经过最小/最大的区域,并且,在手势结束时这个区域会自动设置为最小/最大值。        scrollView.bouncesZoom = true        // 当用户向上的手势时,会返回true        scrollView.zooming        NSLog("scrollView.zooming>>>>>%zd",scrollView.zooming)        //当我们在最小和最大值中间的一个区域中,会返回true。        scrollView.zoomBouncing        //滚动到顶部,默认值为true        scrollView.scrollsToTop = true        //使用这些容器配置scrollView内置的手势识别        scrollView.panGestureRecognizer        scrollView.pinchGestureRecognizer        //创建UIPageControl        let pageControl = UIPageControl(frame: CGRectMake(0, scrollView.frame.size.height-30,200, 30))        //总的图片页数        pageControl.numberOfPages = 6        //当前页        pageControl.currentPage = 0        //用户点击UIPageControl的响应函数        pageControl.addTarget(self, action: #selector(pageTurn(_:)), forControlEvents: UIControlEvents.ValueChanged)        //设置pageControl 的尺寸        let size = pageControl.sizeForNumberOfPages(6)//点点的点击事件    func pageTurn(pageControl:UIPageControl) {    }    //UIscrollView的协议代理方法    //滑动过程中    func scrollViewDidScroll(scrollView: UIScrollView) {    }    //开始拖动    func scrollViewWillBeginDragging(scrollView: UIScrollView) {    }    //开始拖动(以某种速率和偏移量)    func scrollViewDidEndDecelerating(scrollView: UIScrollView) {    }    //停止拖动    func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) {    }    //开始滑动    func scrollViewWillBeginDecelerating(scrollView: UIScrollView) {    }    //允许缩放的视图(一个scrollview中只能有一个可以缩放且必须设置可以缩放的范围)//    func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {//        //        //返回被缩放的试图//        //return imageView;//    }    //开始缩放的时候调用    func scrollViewWillBeginZooming(scrollView: UIScrollView, withView view: UIView?) {    }    //正在缩放的时候调用    func scrollViewDidZoom(scrollView: UIScrollView) {    }    //缩放完毕的时候调用    func scrollViewDidEndZooming(scrollView: UIScrollView, withView view: UIView?, atScale scale: CGFloat) {    }    //将要滚动到顶部的时候调用    func scrollViewShouldScrollToTop(scrollView: UIScrollView) -> Bool {        return true    }    //滚动到顶部的时候调用    func scrollViewDidScrollToTop(scrollView: UIScrollView) {    }