pageControl的使用

昨天使用swift寫一個cell時,使用pagecontrol,在設其frame想讓其居中,使用兩個方法swift

  1. 設原點x座標爲WXDevice.width/2 - pageWidth/2 ide

  2. pagecontrol 原點點x=0,width = WXDevice.width佈局

但結果兩種方法都有問題(5S中卻顯示居中),pagecontrol 位置總有偏移,最後的解決方法是,在layoutSubviews方法裏設置,其frmespa

    override func layoutSubviews() {it

        super.layoutSubviews()scroll

        self.pageControl.frame = CGRectMake(0, vHeight - 10, deviceWidth, 20)方法

    }layout

問題就解決了,大概的緣由,是這樣的,當開始設置frame時,上面兩個方法設的位置的確是居中,只是設備默認一開始,以320爲設備寬度,因此當實際設備的寬度不是320時,進行從新佈局時,就會出現這個問題。這也是爲何5s顯示居中的緣由。

di

        self.likeScrollView = UIScrollView()view

        self.likeScrollView.frame =  CGRectMake(CGFloat(0), 0, deviceWidth, CGFloat( vHeight))

        self.likeScrollView.showsHorizontalScrollIndicator = false //去掉默認水平滑動條

        self.likeScrollView.pagingEnabled = true  // 翻頁屬性

        self.likeScrollView.contentSize = CGSizeMake(deviceWidth * CGFloat(pageCount), CGFloat(self.likeScrollView.frame.size.height))

        self.likeScrollView.delegate = self

        self.contentView.addSubview(self.likeScrollView)


      //for  添加每頁的view

      for (var i = 0 ; i < pageCount; i++) {

            var v: UIView = UIView(frame: CGRectMake(CGFloat(i) * deviceWidth, self.titleLB.frame.size.height,             deviceWidth, self.likeScrollView.frame.size.height))

            self.likeScrollView.addSubview(v)

    }


        self.pageControl = UIPageControl()

        self.pageControl.numberOfPages = pageCount;

        self.pageControl.pageIndicatorTintColor = UIColor.grayColor()// 設置非選中頁的圓點顏色

        self.pageControl.pageIndicatorTintColor = UIColor(red: 204/255.0, green: 204/255.0, blue: 204/255.0, alpha: 0.5)   // #cccccc

        self.pageControl.currentPageIndicatorTintColor = UIColor.redColor()// 設置選中頁的圓點顏色

        self.pageControl.currentPageIndicatorTintColor = UIColor(red: 225/255.0, green: 22/255.0, blue: 68/255.0, alpha: 1)   // #e11644

        self.pageControl.enabled = false        // 禁止默認的點擊功能

        self.pageControl.backgroundColor = UIColor.clearColor()

        self.pageControl.currentPage = 0

        self.contentView.addSubview(self.pageControl)

   

    override func layoutSubviews() {

        super.layoutSubviews()

        self.pageControl.frame = CGRectMake(0, vHeight - 10, deviceWidth, 20)

    }

    //滑動切換

    func scrollViewDidScroll(scrollView: UIScrollView) {

        var pageWidth:CGFloat  = scrollView.frame.size.width;

        var page = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;

        self.pageControl.currentPage = Int( page)

    }

相關文章
相關標籤/搜索