参数解释:
context : 上下文
phase : 第一个点绘制的时候,跳过多少点
lengths: 数组, 如果交替绘制 @{10,10}, 这意思就是先绘制10个点, 再跳过10个点的实现,以此类推, 如果是 @{10,50,20}, 则意思变成 先绘制10个点, 再跳过50个点,再绘制20个点, 在跳过10个点,再绘制50个点,以此类推。
count : lengths数组长度
举例子:
- (void)drawRect:(CGRect)rect { //1.获取上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); //1.1 设置线条的宽度 CGContextSetLineWidth(ctx, 10); //1.2 设置线条的起始点样式 CGContextSetLineCap(ctx,kCGLineCapButt); //1.3 虚实切换 CGFloat length[] = {10,30,50}; CGContextSetLineDash(ctx, 0, length, 3); //1.4 设置颜色 [[UIColor whiteColor] set]; //2.设置路径 CGContextAddEllipseInRect(ctx, CGRectMake((kScreenW - 100)/2, (kScreenH - 100)/2, 100, 100)); //3.绘制 CGContextStrokePath(ctx); }效果图如下:
//1.获取上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); //1.1 设置线条的宽度 CGContextSetLineWidth(ctx, 10); //1.2 设置线条的起始点样式 CGContextSetLineCap(ctx,kCGLineCapButt); //1.3 虚实切换 CGFloat length[] = {5,10}; CGContextSetLineDash(ctx, 0, length, 2); //1.4 设置颜色 [[UIColor whiteColor] set]; //2.设置路径 CGContextAddEllipseInRect(ctx, CGRectMake((kScreenW - 100)/2, (kScreenH - 100)/2, 100, 100)); //3.绘制 CGContextStrokePath(ctx);
效果如下:
