Swift UIScrollView简单介绍

48 篇文章 1 订阅

UIScrollView 是用来展示内容超过一个屏幕,需要滑动去看的时候的一个常用控件

首先,我们看如何用Swift创建一个UIScrollView

        //创建UIScrollView
        let scrollV=UIScrollView(frame: CGRectMake(10, 50, 300, 300))
        scrollV.backgroundColor=UIColor.whiteColor()
        self.view.addSubview(scrollV)

给ScrollView上添加一个图片看效果

        //找一张大图片放到scrollV上
        let img=UIImage(named: "test.jpg")
        let imageV=UIImageView(image: img)
        scrollV.addSubview(imageV)

此时我们发现图片只现实了左上角,而且不能滑动

添加设置

        scrollV.contentSize=img!.size

将 scrollV的contentSize 设置为展示内容的大小(此处就是img的大小)

接下来是不是可以滑动

但是,我们发现有个滑动条出现,默认的还不太好看我们试着试着一下

设置滑动条

我们可以 修改滑动条的样式

        scrollV.indicatorStyle=UIScrollViewIndicatorStyle.White

样式是一个枚举 大家可以尝试一下其他类型

还可以直接讲滑动条取消

        scrollV.showsHorizontalScrollIndicator=false
        scrollV.showsVerticalScrollIndicator=false

还有我们发现在滑动到边界的时候发现图片还可以继续滑动,然后反弹回来

其实这个也可以设置

设置反弹效果

        scrollV.bounces=false

这样滑动到边界之后就不能再滑动了


图片默认现实的是左上角,我们还可以设置默认图片现实的位置

设置偏移量

        scrollV.contentOffset=CGPointMake(100, 100)

这样图片就可以从左边100  上边100 开始显示


接下来我们看几个UiScrollView常用的代理方法

首先,添加协议


设置代理

        scrollV.delegate=self

首先,我们看第一个代理方法

    func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? 
scrollView双手滑动缩放的时候调用词方法

我们一首先图片缩放来看下他的用法

当我们双手滑动缩小的时候 我们希望图片缩小,当双手滑动张开的时候 我们希望图片放大

图片最小能缩小到原始的一半 最大能放到到原图的两倍
首先设置图片最大最小倍数

        scrollV.minimumZoomScale=0.5
        scrollV.maximumZoomScale=2.0

然后实现代理方法

    func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
        return scrollView.subviews[0] as? UIView
    }
由于 我们scrollView 上只有一个图片所以 subviews取0就是刚才的图片

好了试下效果吧


还有三个代理方法

    func scrollViewDidScroll(scrollView: UIScrollView)
滑动scrollView过程中只要图片在动就一直执行

    func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool)

手指拖拽完成离开图片执行此方法


    func scrollViewDidEndDecelerating(scrollView: UIScrollView)
图片停止移动还有执行此方法(如果是快速滑动的话手指一开之后图片还会继续滑动一点距离,注意他和手指离开两个代理方法的区别)


我们实现一下代理方法测试一下

    
    func scrollViewDidScroll(scrollView: UIScrollView) {
        println("滑动中")
    }
    
    func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) {
        println("停止拖拽")
    }
    
    func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
        println("停止滑动")
    }


好了。基本功能就到这里

苹果开发群 :414319235  欢迎加入  欢迎讨论问题



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值