swift详解之十八------------ScrollView
2015-08-30 21:45
405 查看
ScrollView
注:本小节详细介绍scrollView的用法
UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容
UIScrollView的用法,将需要展示的内容添加到UIScrollView中
设置UIScrollView的contentView属性,告诉UIScrollView所有内容的尺寸
let scroll = UIScrollView(); scroll.backgroundColor = UIColor.grayColor() scroll.frame = CGRectMake(10, 30, 100,150) //设置scrollview的大小 scroll.contentSize = CGSizeMake(400, 150) //内容大小 scroll.pagingEnabled = true //是否支持分页 //scroll.contentOffset = CGPointMake(0, -10) scroll.contentInset = UIEdgeInsets(top: 10,left: 10,bottom: 10,right: 10) //内边距 let imageView = UIImageView(image: UIImage(named: "dog1")) imageView.frame = CGRectMake(10, 10, 80, 130) scroll.addSubview(imageView) let imageView1 = UIImageView(image: UIImage(named: "dog2")) imageView1.frame = CGRectMake(100+10, 10,80, 130) scroll.addSubview(imageView1) let imageView2 = UIImageView(image: UIImage(named: "dog3")) imageView2.frame = CGRectMake(100*2+10, 10, 80, 130) scroll.addSubview(imageView2) let imageView3 = UIImageView(image: UIImage(named: "dog4")) imageView3.frame = CGRectMake(100*3+10, 10, 80, 130) scroll.addSubview(imageView3) self.view.addSubview(scroll)
这里我创建了一个scrollview 并设置的一些属性(都有注释) , 然后 添加了四个小狗的图片 。 效果就是横向拖动可轮换显示四张图
滑动可轮换
下面介绍一个可缩放的示例
let scrollview = UIScrollView(); scrollview.frame = CGRectMake(10, 200, viewWidth-20, 300) scrollview.backgroundColor = UIColor.purpleColor() scrollview.contentInset = UIEdgeInsets(top: 10, left:0, bottom: 0, right: 0) imageView4 = UIImageView(image: UIImage(named: "pic1")) imageView4!.frame = CGRectMake(0, 10,viewWidth-20, 280) scrollview.addSubview(imageView4!) scrollview.contentSize=CGSizeMake( viewWidth-20, 300); scrollview.maximumZoomScale=2.0; //设置最大伸缩比例 scrollview.minimumZoomScale=0.5; //设置最小伸缩比例
同样是设置一些基本属性 , 然后设置伸缩比例
class ViewController: UIViewController , UIScrollViewDelegate
让我们的controller实现UIScrollViewDelegate这个协议
scrollview.delegate = self
把scrollview的代理 设成当前对象
//告诉scrollview要缩放的是哪个子控件 func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? { return imageView4 }
然后实现这个方法,告诉scrollview要缩放的是哪个子控件
运行看看 确实可以缩放了。。
下面看看UIScrollViewDelegate 中的一些其他的事件
func scrollViewDidScroll(scrollView: UIScrollView) { print("只要滚动了就会触发哦。") } func scrollViewWillBeginDragging(scrollView: UIScrollView) { print("开始拖拽视图") } func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) { print("结束滚动") } func scrollViewWillBeginDecelerating(scrollView: UIScrollView) { print("将开始降速时") } func scrollViewDidEndDecelerating(scrollView: UIScrollView) { print("减速停止了时执行,手触摸时执行执行") } func scrollViewDidEndScrollingAnimation(scrollView: UIScrollView) { print("滚动动画停止时执行,代码改变时触发,也就是setContentOffset改变时") } func scrollViewDidEndZooming(scrollView: UIScrollView, withView view: UIView?, atScale scale: CGFloat) { print("完成放大缩小时调用") }
这里面都清楚的记载了什么时候执行。。很清楚,大家可以试试
最后再附上这些实例的源码(本实例在xcode 7 beta上实现) :scrollview
都提交了发现还少点什么 , 原来少了这个图 。(本图来源于网络)
相关文章推荐
- Swift2.0不深入只浅出入门教程-01-The Basic
- ios多线程(NSThread)(swift)
- Swift入门篇-结构体
- Swift tableview 单元格分割线显示不全的解决方法
- Swift入门篇-闭包和函数
- swift入门篇-函数
- Swift入门篇-集合
- Swift入门篇-循环语句
- Swift入门篇-字符串和字符
- Swift入门篇-基本类型(3)
- Swift入门篇-基本类型(2)
- Swift入门篇-基本类型(1)
- Swift入门篇-Hello World
- Swift入门篇-swift简介
- Swift下创建和引用pch文件
- Swift UIView 层次调整
- Swift - 基本运算符
- Swift UIView 常用添加方法
- swift 新特性
- swift详解之十七-----------GCD的一些高级用法