swift - UIScrollView 的使用


本節詳細介紹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..<harray.count {
            
            let hImageViews = UIImageView(image: UIImage(named:"\(i+2).jpg" ))
            hImageViews.frame = CGRect(x:self.view.frame.size.width*CGFloat(i),y:0,width: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("完成放大縮小時調用")
    }

 

 上面的方法都備注了什么時候執行,很清楚,大家可以試試!

最后,上傳一張網絡上的圖片:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM