Swift之UIScrollView和UIPageControl

let width:CGFloat = 375
let height:CGFloat = 668
class ViewController: UIViewController,UIScrollViewDelegate {

    var pageControl:UIPageControl?
    var tmpSV:UIScrollView?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        self.setScrollView()
        self.setPageControl()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func setScrollView() {
        var scrollView = UIScrollView()
        scrollView.frame = CGRectMake(0, 20, self.view.frame.size.width, 150)
        //设置内容大小
        scrollView.contentSize = CGSizeMake(CGFloat(width * 6), 150)
        //设置起始偏移量
        scrollView.contentOffset = CGPointMake(0, 0)
        //隐藏水平指示条
        scrollView.showsHorizontalScrollIndicator = false
        //隐藏竖直指示条
        scrollView.showsVerticalScrollIndicator = false
        //开启分页效果
        scrollView.pagingEnabled = true
        //设置代理
        scrollView.delegate = self
        
        self.view.addSubview(scrollView)
        
        tmpSV = scrollView
        
        let colors:[UIColor] = [UIColor.redColor(),UIColor.orangeColor(),UIColor.yellowColor(),UIColor.greenColor(),UIColor.blueColor(),UIColor.purpleColor()]
        for i in 0..<6 {
            var tmpView:UIView = UIView(frame: CGRectMake(width * CGFloat(i), 0, width, 150))
            tmpView.backgroundColor = colors[i]
            scrollView.addSubview(tmpView)
        }
    }
    
    func setPageControl() {
        pageControl = UIPageControl(frame: CGRectMake(self.view.center.x - 60, 120, 120, 20))
        //设置显示的页数
        pageControl?.numberOfPages = 6
        //设置显示的起始页的索引
        pageControl?.currentPage = 0
        //设置单页时隐藏
        pageControl?.hidesForSinglePage = true
        //设置显示颜色
        pageControl?.currentPageIndicatorTintColor = UIColor.greenColor()
        //设置页背景指示颜色
        pageControl?.pageIndicatorTintColor = UIColor.lightGrayColor()
        //添加事件
        pageControl?.addTarget(self, action: Selector("pageControlChanged:"), forControlEvents: UIControlEvents.ValueChanged)
        
        self.view.addSubview(pageControl!)
        
    }
    //pageControl的触发事件
    func pageControlChanged(pageControl:UIPageControl) {
        var page = pageControl.currentPage
        
        println("当前显示的是第\(page+1)页")
        tmpSV!.contentOffset = CGPointMake(width * CGFloat(page), 0)
//        var frame = tmpSV!.frame
//        frame.origin.x = width * CGFloat(page)
//        tmpSV!.scrollRectToVisible(frame, animated: true)
    }
    
    //scrollView Delegate
    func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
        var offset = scrollView.contentOffset.x / width
        pageControl!.currentPage = Int(offset)
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值