Swift基础(二十四)UIScrollView

来源:互联网 发布:腾讯漫画破解软件 编辑:程序博客网 时间:2024/06/05 06:23
class RootViewController: UIViewController, UIScrollViewDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        self.view.backgroundColor = UIColor.whiteColor()
        
        // UIScrollView 滚动视图
        // 创建UIScrollView的对象
        var scrollVew: UIScrollView = UIScrollView(frame: CGRectMake(20, 100, 300, 400))
        // 设置背景颜色
        scrollVew.backgroundColor = UIColor.grayColor()
        // 添加到视图上
        self.view.addSubview(scrollVew)
        // 给滚动视图添加一些view
        // 创建3个视图,添加到ScrollView上
        let view1 = UIView(frame: CGRectMake(0, 0, 300, 400))
        view1.backgroundColor = UIColor.redColor()
        scrollVew.addSubview(view1)
        
        let view2 = UIView(frame: CGRectMake(300, 0, 300, 400))
        view1.backgroundColor = UIColor.greenColor()
        scrollVew.addSubview(view2)
        
        let view3 = UIView(frame: CGRectMake(600, 0, 300, 400))
        view1.backgroundColor = UIColor.blueColor()
        scrollVew.addSubview(view3)
        
        // 设置scrollView的容器大小
        scrollVew.contentSize = CGSizeMake(300 * 3, 400)
        // 设置滚动条风格
        scrollVew.indicatorStyle = .White
        /*
         public enum UIScrollViewIndicatorStyle : Int {
         
         case Default // black with white border. good against any background
         case Black // black only. smaller. good against a white background
         case White // white only. smaller. good against a black background
         }
         */
        // 设置水平方向滚动条是否可见
        scrollVew.showsHorizontalScrollIndicator = false
        // 设置垂直方向滚动条是否可见
        scrollVew.showsVerticalScrollIndicator = false
        // 设置成翻页滚动
        scrollVew.pagingEnabled = true
        // 设置代理执行者
        scrollVew.delegate = self
        // 缩放功能-返回缩放的视图
        func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
            // 获取当前滚动视图移动的X坐标
            let offsetX = scrollView.contentOffset.x
            print(offsetX)
            if offsetX == 0 {
                return view1
            } else if offsetX == 300 {
                return view2
            } else if offsetX == 600 {
                return view3
            } else {
                return nil
            }
        }
    }
    // 监听缩放动作,也是通过实现滚动视图的代理来处理一些事件
    func scrollViewDidZoom(scrollView: UIScrollView) {
        // 缩放过程一直调用
    }
    func scrollViewWillBeginZooming(scrollView: UIScrollView, withView view: UIView?) {
        // 开始缩放,调用一次
    }
    func scrollViewDidEndZooming(scrollView: UIScrollView, withView view: UIView?, atScale scale: CGFloat) {
        // 缩放结束,调用一次
    }
    
    
    func scrollViewDidScroll(scrollView: UIScrollView) {
        // 视图滚动中一直触发
    }
    func scrollViewWillBeginDragging(scrollView: UIScrollView) {
        // 刚开始拖动视图时触发一次
    }
    func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
        // 将要结束拖动触发一次
    }
    func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) {
        // 拖动结束,触发一次
    }
    func scrollViewWillBeginDecelerating(scrollView: UIScrollView) {
        // 拖动结束后,开始减速
    }
    func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
        // 减速完毕,恢复到静止状态
    }
}
0 0
原创粉丝点击