1 - (void)drawRect:(CGRect)rect
2 {
3 // 获取上下文
4 CGContextRef ctx = UIGraphicsGetCurrentContext();
5
6 // 保存一份最纯洁的图形上下文
7 // 调用一次该方法就会拷贝一个上下文到栈中,存几次就最多能调用几次 CGContextRestoreGState(ctx),如果存了一次,取第二次的时候就会报错
8
9 CGContextSaveGState(ctx);
10 //CGContextSaveGState(ctx);
11
12 // 第一条线
13 // 利用图形上下文保存绘图信息
14 CGContextMoveToPoint(ctx, 150, 20);
15 CGContextAddLineToPoint(ctx, 20, 100);
16
17 // 设置第一条线的状态
18 CGContextSetLineWidth(ctx, 10);
19 CGContextSetLineCap(ctx, kCGLineCapRound);
20 [[UIColor redColor] set];
21
22 // 渲染
23 CGContextStrokePath(ctx);
24
25
26 // 还原开始保存的那份最纯洁的图形上下文
27 CGContextRestoreGState(ctx);
28
29 // 第二条线
30 CGContextMoveToPoint(ctx, 80, 30);
31 CGContextAddLineToPoint(ctx, 80, 150);
32 CGContextStrokePath(ctx);
33 CGContextSaveGState(ctx);
34
35
36 // 渲染
37 CGContextStrokePath(ctx);
38
39 }