2017-09-01 37 views
1

我想在一个上下文中绘制虚线和实线。但是如果我先画一条虚线,那么第二条线也是一条虚线。那么如何清理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() 
} 

回答

2

设置短划线为空数组绘制你的实线前。

context.setLineDash(phase: 0, lengths: []) 

CGContext文档:

传递空数组以清除虚线图案,以便在上下文中的所有绘图笔画 使用实线。

Documentation Link