【Swift】自定义虚线View

// 调用
        let lineView = CNDashedView(frame:  CGRect(x: 2, y: 300, width: self.view.frame.size.width - 4, height: 1))
        self.view.addSubview(lineView)
class CNDashedView: UIView {
    override init(frame: CGRect) {
        super.init(frame: frame)
        self.backgroundColor = UIColor.white
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    override func draw(_ rect: CGRect) {

        let context = UIGraphicsGetCurrentContext()
        context?.setFillColor(UIColor.clear.cgColor)
        // 这里控制虚线的样式
        context?.setLineDash(phase: 4, lengths: [20,30,60,30])

        context?.fill(self.bounds)

        context?.setStrokeColor(UIColor.lightGray.cgColor)
        context?.move(to: CGPoint(x: 0, y: 0))
        context?.addLine(to: CGPoint(x: self.frame.size.width, y: 0))

        context?.strokePath()

    }
}

【Swift】自定义虚线View_第1张图片

你可能感兴趣的:(Swift)