zoukankan      html  css  js  c++  java
  • [Swift]iOS开发之ScrollView

    ScrollView是应用非常广泛的控件,当有内容整块屏幕显示不完的时候,就是scrollView使用的场合了。比如网页,大尺寸图片浏览。

    下面我们来实现这样的页面效果

    先定义内容的宽高,页数,颜色⬇️

    let pageWidth:CGFloat = CGRectGetWidth(UIScreen.mainScreen().bounds)
    let pageHeight:CGFloat = CGRectGetHeight(UIScreen.mainScreen().bounds)
    let pageNum = 3
    let colorMap = [UIColor.redColor(),UIColor.yellowColor(),UIColor.blueColor()]
    

     然后开始设置scrollView

    //初始化scrollView
            let scrollView = UIScrollView()
            scrollView.frame = self.view.bounds
            scrollView.showsHorizontalScrollIndicator = true
            scrollView.showsVerticalScrollIndicator = false
            scrollView.pagingEnabled = true
            
            //定义scrollView的内容尺寸
            scrollView.contentSize = CGSizeMake(pageWidth*CGFloat(pageNum), pageHeight)
            
            //添加子view
            for page in 0..<pageNum {
                let contentPage = UIView()
                contentPage.frame = CGRectMake(CGFloat(page)*pageWidth, 0, pageWidth, pageHeight)
                contentPage.backgroundColor = colorMap[page]
                scrollView.addSubview(contentPage)
                
            }
            
            self.view.addSubview(scrollView)
    

    tip1:其中添加子view的环节,如果contentPage定义在外面(变成全局变量),循环出来只会出现最后的页面。

    tip2:scrollView的contentSize不要忘了。

    tip3:scrollView的frame是scrollView这个控件的大小,不是contentSize!!!

    tip4:pagingEnabled属性如果是false可以滑出这种效果⬇️

    这是横向滚动的实现,竖向也是一样的,下面我们来模仿大尺寸图片浏览~!

    只需更改一点点代码即可~

    let pageNum = 4
        let colorMap = [UIColor.redColor(),UIColor.yellowColor(),UIColor.blueColor(),UIColor.blackColor()]
    
    //定义scrollView的内容尺寸
            scrollView.contentSize = CGSizeMake(pageWidth*2, pageHeight*2)
    

     注意添加子view的逻辑

    //添加子view
            for page in 0..<pageNum {
                let contentPage = UIView()
                var originY:CGFloat = 0
                var originX:CGFloat = pageWidth*CGFloat(page)
                if page > 1 {
                    originY = pageHeight
                    originX = pageWidth*CGFloat(page-2)
                }
                contentPage.frame = CGRectMake(originX, originY, pageWidth, pageHeight)
                contentPage.backgroundColor = colorMap[page]
                scrollView.addSubview(contentPage)
                
            }
    
  • 相关阅读:
    Medium | LeetCode 347. 前 K 个高频元素 | 快速排序
    Medium | LeetCode 215. 数组中的第K个最大元素 | 快速排序
    Easy | LeetCode 75. 颜色分类 | 快速排序
    lib和dll
    windows使用cmd打印出当前路径下的所有文件名称
    windows中的sleep和Ubuntu中的sleep
    ‘mutex’ in namespace ‘std’ does not name a type
    gcc命令参数
    ubuntu18.04 使用pthread库
    vs2019 c语言配置pthreads多线程
  • 原文地址:https://www.cnblogs.com/ybw123321/p/5385591.html
Copyright © 2011-2022 走看看