iOS CG虚线路径

时间:2016-05-29 23:47:16

标签: ios path core-graphics line

绘制这样的虚线路径非常简单

enter image description here

CGFloat lengths[] = { 12.0, 4.0, 12.0, 4.0,  4.0, 4.0 };
CGContextSetLineDash(ctx, 0, lengths, 6);
//... path code: moveTo, lineTo, strokePath

可以绘制更复杂的虚线吗? 例如:

enter image description here

1 个答案:

答案 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}}。例如,绘制第二个具有较宽线宽的红色,它看起来像:

enter image description here

如果你用黑色绘制它们,它看起来像:

enter image description here

根据您的需要调整值,但只需确保两者的所有lengths2的总和加起来相同,因此lengths的描边部分与lengths2中的细分的开头和结尾。