swift中UIScrollView的使用

UIScrollView的使用

import UIKit

class ViewController: UIViewController {

    var pageControl: UIPageControl?
    override func viewDidLoad() {
        super.viewDidLoad()
        
        self.setupScrollView()
    }
    func setupScrollView() {
    
        let scrollView = UIScrollView(frame: CGRect(x: 0, y: 100, width: UIScreen.main.bounds.width, height: 300))
        scrollView.backgroundColor = UIColor.red
        // 設(shè)置滾動條
        scrollView.showsVerticalScrollIndicator = false
        scrollView.showsHorizontalScrollIndicator = false
        // 設(shè)置分頁滾動
        scrollView.isPagingEnabled = true
        // 設(shè)置是否可以拉出空白區(qū)域
        scrollView.bounces = false
        // 垂直
        scrollView.alwaysBounceVertical = false
        // 水平
        scrollView.alwaysBounceHorizontal = false
        // 是否滾動
        scrollView.isScrollEnabled = true
        // 在scrollView的內(nèi)容周圍添加一個附件區(qū)域
//        scrollView.contentInset = UIEdgeInsetsMake(10, 10, 10, 10)
        // 調(diào)整指示器(滾動條)的位置
//        scrollView.scrollIndicatorInsets = UIEdgeInsetsMake(30, 30, 30, 30)
        // 滾動條的樣式
        scrollView.indicatorStyle = .black
        // 最小的縮放倍數(shù),默認(rèn)值為1.0
        scrollView.minimumZoomScale = 0.2
        // 最大的縮放倍數(shù),默認(rèn)值為1.0
        scrollView.maximumZoomScale = 100
        
        // 添加圖片
        let imagesArray = ["0.jpg", "1.jpg", "2.pg"]
        for i in 0..<imagesArray.count {
            // 創(chuàng)建imageview
            let imageView = UIImageView(frame: CGRect(x: CGFloat(i)*scrollView.frame.width, y: 0, width: scrollView.frame.width, height: scrollView.frame.height))
            let imageName = imagesArray[i]
            imageView.image = UIImage(named: imageName)
            imageView.isUserInteractionEnabled = true
            scrollView.addSubview(imageView)
        }
        // 設(shè)置內(nèi)容區(qū)域
        scrollView.contentSize = CGSize(width: scrollView.frame.width*CGFloat(imagesArray.count), height: scrollView.frame.height)
        scrollView.delegate = self
        scrollView.isDirectionalLockEnabled = false
        // 設(shè)置偏移量
//        scrollView.setContentOffset(CGPoint(x: 100, y: 10), animated: true)
        // 創(chuàng)建UIPageControl
        let pageControl = UIPageControl(frame: CGRect(x: 100, y: UIScreen.main.bounds.height-50, width: 200, height: 30))
//        pageControl.backgroundColor = UIColor.red
        // 總的圖片頁數(shù)
        pageControl.numberOfPages = 3
        // 當(dāng)前頁
        pageControl.currentPage = 0
        pageControl.currentPageIndicatorTintColor = UIColor.orange
        // pageControl響應(yīng)函數(shù)
        pageControl.addTarget(self, action: #selector(pageControlClick(_:)), for: .valueChanged)
        self.view.addSubview(pageControl)
        self.pageControl = pageControl
        self.view.addSubview(scrollView)
    }
    func pageControlClick(_ pageControl: UIPageControl) {
    
    }
}

// MARK: UIScrollViewDelegate
extension ViewController: UIScrollViewDelegate {
    
    func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
        print("將要開始拖動")
    }
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        print("已經(jīng)滑動")
        if scrollView.contentOffset.x < scrollView.frame.width {
            self.pageControl?.currentPage = 0
        }
        else if (scrollView.contentOffset.x < 2*scrollView.frame.width) && (scrollView.contentOffset.x >= scrollView.frame.width) {
            self.pageControl?.currentPage = 1
        }
        else {
            self.pageControl?.currentPage = 2
        }
    }
    func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
        print("停止拖動")
    }
    func scrollViewShouldScrollToTop(_ scrollView: UIScrollView) -> Bool {
        print("將要滾動到頂部")
        return true
    }
    func scrollViewDidScrollToTop(_ scrollView: UIScrollView) {
        print("已經(jīng)滾動到頂部")
    }
    func scrollViewDidZoom(_ scrollView: UIScrollView) {
        print("正在縮放")
    }
    func scrollViewDidEndZooming(_ scrollView: UIScrollView, with view: UIView?, atScale scale: CGFloat) {
        print("以及縮放完畢")
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容