iOS CG虚线路径
iOS CG dashed line path
这样画虚线路径很简单
CGFloat lengths[] = { 12.0, 4.0, 12.0, 4.0, 4.0, 4.0 };
CGContextSetLineDash(ctx, 0, lengths, 6);
//... path code: moveTo, lineTo, strokePath
可以画更复杂的虚线吗?
示例:
您已经创建了一条具有六个长度的路径。用 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
的 lengths
的窄线宽,然后第二次使用 CGContextSetLineDash
的较粗的线宽lengths2
。例如,用红色线宽绘制第二个,它看起来像:
如果你把两个都画成黑色,看起来像:
调整您认为合适的值,但只需确保两者的所有 lengths
总和等于相同的值,因此 lengths2
的描边部分对齐lengths
.
中段的开始和结束
这样画虚线路径很简单
CGFloat lengths[] = { 12.0, 4.0, 12.0, 4.0, 4.0, 4.0 };
CGContextSetLineDash(ctx, 0, lengths, 6);
//... path code: moveTo, lineTo, strokePath
可以画更复杂的虚线吗? 示例:
您已经创建了一条具有六个长度的路径。用 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
的 lengths
的窄线宽,然后第二次使用 CGContextSetLineDash
的较粗的线宽lengths2
。例如,用红色线宽绘制第二个,它看起来像:
如果你把两个都画成黑色,看起来像:
调整您认为合适的值,但只需确保两者的所有 lengths
总和等于相同的值,因此 lengths2
的描边部分对齐lengths
.