自定义UIPageControl最初不会显示,但会在刷卡后立即显示

时间:2015-12-04 19:58:27

标签: ios swift uipagecontrol

我正在尝试自定义UIPageControlView。我从here引用了解决方案。我重写了swift版本。结果是定制的UIPageControl仅在我滑动滚动视图时显示。它始终显示默认外观。

这是代码。

import UIKit

class CustomizedPageControl: UIPageControl {

    // MARK: Initialization

    override init(frame: CGRect) {
        super.init(frame: frame)
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    func updateDots() {

        for i in 0...self.subviews.count - 1 {

            let dot = self.subviews[i]

            if i == self.currentPage {
                dot.layer.borderWidth = 0.0
                dot.layer.backgroundColor = UIColor.redColor().CGColor
            } else {
                dot.layer.borderWidth = 1.0
                dot.layer.borderColor = UIColor.grayColor().CGColor
                dot.backgroundColor = UIColor.clearColor()
            }
        }
    }

    func setCustomizedCurrentPage(page: Int) {
        super.currentPage = page
        self.updateDots()
    }
}

1 个答案:

答案 0 :(得分:1)

将此方法更改为此...

func updateDots() {

        for i in 0...self.subviews.count - 1 {

            let dot = self.subviews[i]
            dot.layer.borderWidth = 0.0
            dot.layer.borderColor = UIColor.grayColor().CGColor

            if i == self.currentPage {
                dot.layer.borderWidth = 0.0
                dot.layer.backgroundColor = UIColor.redColor().CGColor
            } 
        }
    }