zoukankan      html  css  js  c++  java
  • Swift

    UIScrollView提供了以页面为单位滚动显示各个子页面内容的功能,每次手指滑动后会滚动一屏的内容。

     
    要实现该功能,需要如下操作:
    1,将UIScrollView的pagingEnabled属性设置成true
    2,必须通过contentSize属性设置各个页面相加的宽度。比如iphone手机一屏宽度是320,如果有3个页面,则contentSize就需要设置为320*3=960
    3,最好将showsHorizontalScrollIndicator和showsVerticalScrollIndicator设置成false隐藏横向和纵向滚动条。
    4,如果scrollsToTop不需要也设置成false。


    --- 主页面 ---

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    class ViewController: UIViewController{
        let numOfPages = 3
        let pageWidth = 320
        let pageHeight = 360
         
        override func viewDidLoad(){
            super.viewDidLoad()
             
            //scrollView的初始化
            var scrollView = UIScrollView()
            scrollView.frame = self.view.bounds
            //为了让内容横向滚动,设置横向内容宽度为3个页面的宽度总和
            scrollView.contenSize=CGSizeMake(CGFloat(pageWidth*numOfPages), CGFloat(pageHeight))
            scrollView.pagingEnabled = true
            scrollView.showsHorizontalScrollIndicator = false
            scrollView.showsVerticalScrollIndicator = false
            scrollView.scrollsToTop = false
             
            //添加子页面
            for i in 0..numOfPages{
                var myViewController = MyViewController(number:(i+1))
                myViewController.view.frame = CGRectMake(CGFloat(pageWidth*i),
                CGFloat(0), CGFloat(pageWidth), CGFloat(pageHeight))
                scrollView.addSubview(myViewController.view)
            }
            self.view.addSubview(scrollView)
        }
    }


    --- 子页面 ---

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    class MyViewController: UIViewController{
        var number:Int!
        let colorMap=[
            1:UIColor.blackColor(),
            2:UIColor.orangeColor(),
            3:UIColor.blueColor()
        ]
         
        init(number initNumber:Int){
            self.number = initNumer
            super.init(nibNmae:nil, bundle:nil)
        }
         
        override func viewDidLoad(){
            var numberLabel = UILabel(frame:CGRectMake(0,0,100,100))
            numberLabel.center = self.view.center
            numberLabel.text = "第(number)页"
            numberLabel.textColor = UIColor.whiteColor()
            self.view.addSubview(numberLabel)
            self.view.backgroundColor = colorMap[number]
        }
    }
  • 相关阅读:
    【Android】【踩坑日记】RecyclerView获取子View的正确姿势
    【Thinking in Java】编写构造器时应注意:尽量避免调用其他非private方法
    为什么匿名内部类只能访问final变量【转】
    【Thinking in Java】类和对象的初始化过程
    【Thinking in Java】Java Callable的使用
    【算法与数据结构】二叉搜索树的Java实现
    【Thinking in Java】组合、继承和代理的区别
    【面试经历】腾讯一二面分享与总结
    【面试经历】腾讯、网易有道和阿里的笔试分享及自我总结
    《Unity預計算即時GI》笔记:三、Clusters和总结
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/4838179.html
Copyright © 2011-2022 走看看