zoukankan      html  css  js  c++  java
  • swift

    本节详细介绍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,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(self.view.frame.size.width * 3,height:0)

    3、实现轮播的效果

    1)添加图片

    /***添加多张图片到scrollview里面***/
    
            harray = ["2.jpg","3.jpg","4.jpg"]
            
            //所以这里切换成for循环的方式添加图片
            for i in 0..<harray.count {
                
                let hImageViews = UIImageView(image: UIImage(named:"(i+2).jpg" ))
                hImageViews.frame = CGRect(x:self.view.frame.size.width*CGFloat(i),y:0,self.view.frame.size.width,height:300)
                scrollView.addSubview(hImageViews)
                
            }
     
            self.view.addSubview(scrollView)//一定不要忘记把scrollview添加到view上

    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("完成放大缩小时调用")
        }

     上面的方法都备注了什么时候执行,很清楚,大家可以试试!

    最后,上传一张网络上的图片:

  • 相关阅读:
    python操作excel表格
    重学Java
    重学Java
    重学Java
    重学Java
    重学Java
    博客园自定义主题及目录组件
    重学Java
    修改 Eclipse 背景颜色的高级方法
    dbf转excel
  • 原文地址:https://www.cnblogs.com/hero11223/p/5707969.html
Copyright © 2011-2022 走看看