美文网首页
swift中UIScrollView的使用

swift中UIScrollView的使用

作者: 不安分心 | 来源:发表于2016-12-21 17:35 被阅读0次

    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
            // 设置滚动条
            scrollView.showsVerticalScrollIndicator = false
            scrollView.showsHorizontalScrollIndicator = false
            // 设置分页滚动
            scrollView.isPagingEnabled = true
            // 设置是否可以拉出空白区域
            scrollView.bounces = false
            // 垂直
            scrollView.alwaysBounceVertical = false
            // 水平
            scrollView.alwaysBounceHorizontal = false
            // 是否滚动
            scrollView.isScrollEnabled = true
            // 在scrollView的内容周围添加一个附件区域
    //        scrollView.contentInset = UIEdgeInsetsMake(10, 10, 10, 10)
            // 调整指示器(滚动条)的位置
    //        scrollView.scrollIndicatorInsets = UIEdgeInsetsMake(30, 30, 30, 30)
            // 滚动条的样式
            scrollView.indicatorStyle = .black
            // 最小的缩放倍数,默认值为1.0
            scrollView.minimumZoomScale = 0.2
            // 最大的缩放倍数,默认值为1.0
            scrollView.maximumZoomScale = 100
            
            // 添加图片
            let imagesArray = ["0.jpg", "1.jpg", "2.pg"]
            for i in 0..<imagesArray.count {
                // 创建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)
            }
            // 设置内容区域
            scrollView.contentSize = CGSize(width: scrollView.frame.width*CGFloat(imagesArray.count), height: scrollView.frame.height)
            scrollView.delegate = self
            scrollView.isDirectionalLockEnabled = false
            // 设置偏移量
    //        scrollView.setContentOffset(CGPoint(x: 100, y: 10), animated: true)
            // 创建UIPageControl
            let pageControl = UIPageControl(frame: CGRect(x: 100, y: UIScreen.main.bounds.height-50, width: 200, height: 30))
    //        pageControl.backgroundColor = UIColor.red
            // 总的图片页数
            pageControl.numberOfPages = 3
            // 当前页
            pageControl.currentPage = 0
            pageControl.currentPageIndicatorTintColor = UIColor.orange
            // pageControl响应函数
            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("已经滑动")
            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("已经滚动到顶部")
        }
        func scrollViewDidZoom(_ scrollView: UIScrollView) {
            print("正在缩放")
        }
        func scrollViewDidEndZooming(_ scrollView: UIScrollView, with view: UIView?, atScale scale: CGFloat) {
            print("以及缩放完毕")
        }
    }
    

    相关文章

      网友评论

          本文标题:swift中UIScrollView的使用

          本文链接:https://www.haomeiwen.com/subject/hywqvttx.html