// 调用
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()
}
}
![这里写图片描述](https://img-blog.csdn.net/20180130143336163?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRW1wZXJvcl9odWFuemk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)