首页 > 代码库 > 画虚线

画虚线

绘制一条虚线,此方法可以写到UIImage的分类中,直接写成类方法调用即可。

 1 - (UIImage *)drawDashImageWithFrame:(CGRect)frame andLineColor:(UIColor *)lineColor
 2 {
 3     // 开启图形上下文
 4     UIGraphicsBeginImageContext(frame.size);
 5     
 6     // 获取上下文
 7     CGContextRef cxtRef = UIGraphicsGetCurrentContext();
 8     
 9     // 设置线头样式
10     CGContextSetLineCap(cxtRef, kCGLineCapRound);
11     
12     // 绘制3个点,跳过2个点,绘制3个点,跳过3个点,绘制2个点,如此反复
13     // CGFloat lengths[] = {3,2,3};
14     // 6是每个虚线的长度,5是虚线之间的间隔
15     CGFloat lengths[] = {6,5};
16     
17     // 设置线宽(向两边扩展)
18     CGContextSetLineWidth(cxtRef,1);
19     
20     // 设置线条渲染颜色
21     [lineColor setStroke];
22     
23     // 画虚线
24     // 参数2:第一次绘制的时候跳过多少个点
25     // 参数3:数组
26     // 参数4:数组长度
27     CGContextSetLineDash(cxtRef, 0,lengths, 2);
28     
29     // 开始画线-起点
30     CGContextMoveToPoint(cxtRef, 0.0, 0.0);
31     
32     // 线束画线-终点
33     CGContextAddLineToPoint(cxtRef, [UIScreen mainScreen].bounds.size.width, 0.0);
34     
35     // 设置描边
36     CGContextStrokePath(cxtRef);
37     
38     // 从图形上下文中获取图片
39     UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
40     
41     // 关闭图形上下文
42     UIGraphicsEndImageContext();
43     
44     return img;
45 }

 

画虚线