CGContextSetLineDash(CGContextRef cg_nullable c, CGFloat phase, const CGFloat * __nullable lengths, size_t count)
参数
- // 部分代码
- CGFloat components[] = {1,10};
- CGContextSetLineDash(context, 0, components, 2);
绘制1个点, 跳过10个点
绘制10个点, 跳过1个点
仔细看, 其实当数组传入的是{0,10}, 0也是能看到一个很小的点的
可能
都不一样- // 部分代码
- CGFloat components[] = {1,10};
- CGContextSetLineDash(context, 0, components, 2);
-
- CGFloat components[] = {1,10};
- CGContextSetLineDash(context, 5, components, 2);
-
- CGFloat components[] = {100,1};
- CGContextSetLineDash(context, 0, components, 2);
-
- CGFloat components[] = {100,1};
- CGContextSetLineDash(context, 50, components, 2);
下面我们画一个虚线半圆:
-(void)drawRect:(CGRect)rect{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(context, UIColor.whiteColor.CGColor);
CGContextSetLineWidth(context, 1.0);
CGContextAddArc(context, kScreen_Width/2, 148, 128, 0, M_PI, 1);
CGFloat components[] = {5,1};
CGContextSetLineDash(context, 2, components, 2);
CGContextDrawPath(context, kCGPathStroke);
}
效果图如下