本节详细介绍scrollview的用法
————————————————————————————————————
UIScrollView 是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容
UIScrollView 用法,将需要展示的内容添加到scrollview中
设置UIScrollView 的contentView属性,告诉UIScrollView所有内容的尺寸
1、初始化
let scrollView = UIScrollView()var imageView = UIImageView()var imageView2 = UIImageView()var imageView3 = UIImageView()var imageView4 = UIImageView()
2、创建scrollview,并确定好所需设置的属性
scrollView.delegate = self //设置代理scrollView.frame = CGRect(x:0,y:64,width:self.view.frame.size.width,height:200)//设置scrollview的大小scrollView.backgroundColor = UIColor.white//设置背景颜色scrollView.pagingEnabled = true //是否支持分页scrollView.bounces = false //是否支持回弹效果scrollView.showsVerticalScrollIndicator = false //垂直滑动线隐藏scrollView.showsHorizontalScrollIndicator = false //水平滑动线隐藏//scrollView.contentInset = UIEdgeInsetsMake(10, 10, 10, 10) //设置内边距scrollView.contentSize = CGSize(width:self.view.frame.size.width * 3,height:0)
3、实现轮播的效果
1)添加图片
/***添加多张图片到scrollview里面***/ harray = ["2.jpg","3.jpg","4.jpg"] //所以这里切换成for循环的方式添加图片 for i in 0..
2)实现轮播的效果
所需要注意的是:就是设置好所添加图片的frame,上面的代码写的很详细,大家可以参考!
效果图如下:
4、实现图片缩放的效果
1)创建scrollview,并添加图片
scrollView.delegate = self scrollView.frame = self.view.bounds let imageView = UIImageView(image:UIImage(named:"1.jpeg")) scrollView.contentSize = imageView.bounds.size scrollView.addSubview(imageView) self.view.addSubview(scrollView) scrollView.minimumZoomScale = 0.1 scrollView.maximumZoomScale = 5.0
2)实现一个代理方法,在此方法中指定需要缩放的子控件
func viewForZooming(in scrollView: UIScrollView) -> UIView? { for subView:AnyObject in scrollview.subviews { if subView.isKind(of:UIImageView.self) { return subView as? UIView } } return nil }
效果图如下:
5、代理方法的作用
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("完成放大缩小时调用") }
上面的方法都备注了什么时候执行,很清楚,大家可以试试!
最后,上传一张网络上的图片: