swift详解之十八------------ScrollView

前端之家收集整理的这篇文章主要介绍了swift详解之十八------------ScrollView前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

ScrollView

注:本小节详细介绍scrollView的用法


UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容
UIScrollView的用法,将需要展示的内容添加到UIScrollView中
设置UIScrollView的contentView属性,告诉UIScrollView所有内容的尺寸

  1. let scroll = UIScrollView();
  2. scroll.backgroundColor = UIColor.grayColor()
  3. scroll.frame = CGRectMake(10,30,100,150) //设置scrollview的大小
  4. scroll.contentSize = CGSizeMake(400,150) //内容大小
  5. scroll.pagingEnabled = true //是否支持分页
  6. //scroll.contentOffset = CGPointMake(0,-10)
  7. scroll.contentInset = UIEdgeInsets(top: 10,left: 10,bottom: 10,right: 10) //内边距
  8.  
  9. let imageView = UIImageView(image: UIImage(named: "dog1"))
  10. imageView.frame = CGRectMake(10,10,80,130)
  11. scroll.addSubview(imageView)
  12.  
  13. let imageView1 = UIImageView(image: UIImage(named: "dog2"))
  14. imageView1.frame = CGRectMake(100+10,130)
  15. scroll.addSubview(imageView1)
  16.  
  17. let imageView2 = UIImageView(image: UIImage(named: "dog3"))
  18. imageView2.frame = CGRectMake(100*2+10,130)
  19. scroll.addSubview(imageView2)
  20.  
  21. let imageView3 = UIImageView(image: UIImage(named: "dog4"))
  22. imageView3.frame = CGRectMake(100*3+10,130)
  23. scroll.addSubview(imageView3)
  24.  
  25. self.view.addSubview(scroll)

这里我创建了一个scrollview 并设置的一些属性(都有注释) , 然后 添加了四个小狗的图片效果就是横向拖动可轮换显示四张图


滑动可轮换

下面介绍一个可缩放的示例

  1. let scrollview = UIScrollView();
  2. scrollview.frame = CGRectMake(10,200,viewWidth-20,300)
  3. scrollview.backgroundColor = UIColor.purpleColor()
  4. scrollview.contentInset = UIEdgeInsets(top: 10,left:0,bottom: 0,right: 0)
  5.  
  6. imageView4 = UIImageView(image: UIImage(named: "pic1"))
  7. imageView4!.frame = CGRectMake(0,280)
  8. scrollview.addSubview(imageView4!)
  9. scrollview.contentSize=CGSizeMake( viewWidth-20,300);
  10. scrollview.maximumZoomScale=2.0; //设置最大伸缩比例
  11. scrollview.minimumZoomScale=0.5; //设置最小伸缩比例

同样是设置一些基本属性 , 然后设置伸缩比例

  1. class ViewController: UIViewController,UIScrollViewDelegate

让我们的controller实现UIScrollViewDelegate这个协议

  1. scrollview.delegate = self

把scrollview的代理 设成当前对象

  1. //告诉scrollview要缩放的是哪个子控件
  2. func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
  3. return imageView4
  4. }

然后实现这个方法,告诉scrollview要缩放的是哪个子控件
运行看看 确实可以缩放了。。

下面看看UIScrollViewDelegate 中的一些其他的事件

  1. func scrollViewDidScroll(scrollView: UIScrollView) {
  2. print("只要滚动了就会触发哦。")
  3. }
  4.  
  5. func scrollViewWillBeginDragging(scrollView: UIScrollView) {
  6. print("开始拖拽视图")
  7. }
  8.  
  9. func scrollViewDidEndDragging(scrollView: UIScrollView,willDecelerate decelerate: Bool) {
  10. print("结束滚动")
  11. }
  12.  
  13. func scrollViewWillBeginDecelerating(scrollView: UIScrollView) {
  14. print("将开始降速时")
  15. }
  16.  
  17. func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
  18. print("减速停止了时执行,手触摸时执行执行")
  19. }
  20.  
  21. func scrollViewDidEndScrollingAnimation(scrollView: UIScrollView) {
  22. print("滚动动画停止时执行,代码改变时触发,也就是setContentOffset改变时")
  23. }
  24.  
  25. func scrollViewDidEndZooming(scrollView: UIScrollView,withView view: UIView?,atScale scale: CGFloat) {
  26. print("完成放大缩小时调用")
  27. }

这里面都清楚的记载了什么时候执行。。很清楚,大家可以试试

最后再附上这些实例的源码(本实例在xcode 7 beta上实现) :scrollview

都提交了发现还少点什么 , 原来少了这个图 。(本图来源于网络)

猜你在找的Swift相关文章