在一个上下文中绘制实线和虚线
问题描述:
我想在一个上下文中绘制虚线和实线。但是如果我先画一条虚线,那么第二条线也是一条虚线。那么如何清理context.setLineDash
?我试过context.beginContext()
,它没有帮助。在一个上下文中绘制实线和虚线
下面是代码:
if let context = UIGraphicsGetCurrentContext() {
// The first line
let startPoint = CGPoint(x: 20, y: rect.height/2)
let endPoint = CGPoint(x: rect.width - 40, y: rect.height/2)
context.move(to: startPoint)
context.addLine(to: endPoint)
context.setLineWidth(1)
context.setLineDash(phase: 0, lengths: [4, 4])
context.setStrokeColor(UIColor.progressDashLineColor.cgColor)
context.strokePath()
// Second line
let startPoint1 = CGPoint(x: 20, y: rect.height/2 + 5)
let endPoint1 = CGPoint(x: rect.width-120, y: rect.height/2)
context.setStrokeColor(UIColor.mainColor.cgColor)
context.setLineWidth(5)
context.move(to: startPoint1)
context.addLine(to: endPoint1)
context.setLineCap(.round)
context.strokePath()
}
答
设置短划线为空数组绘制你的实线前。
context.setLineDash(phase: 0, lengths: [])
从CGContext
文档:
传递空数组以清除虚线图案,以便在上下文中的所有绘图笔画 使用实线。