绘制这样的虚线路径非常简单
CGFloat lengths[] = { 12.0, 4.0, 12.0, 4.0, 4.0, 4.0 };
CGContextSetLineDash(ctx, 0, lengths, 6);
//... path code: moveTo, lineTo, strokePath
可以绘制更复杂的虚线吗? 例如:
答案 0 :(得分:3)
您创建了一个包含六种长度的路径。用8创建另一个来代表那些更宽段的终点:
CGFloat lengths[] = { 12.0, 4.0, 12.0, 4.0, 4.0, 4.0 };
CGFloat lengths2[] = { 3.0, 6.0, 3.0, 4.0, 3.0, 6.0, 3.0, 12.0 };
因此,使用CGContextSetLineDash
的{{1}}对路径进行两次划分,一次使用较窄的线宽,然后再使用lengths
的{CGContextSetLineDash
进行第二次划线。 1}}。例如,绘制第二个具有较宽线宽的红色,它看起来像:
如果你用黑色绘制它们,它看起来像:
根据您的需要调整值,但只需确保两者的所有lengths2
的总和加起来相同,因此lengths
的描边部分与lengths2
中的细分的开头和结尾。