ios图形上下文栈

 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 }

 

posted @ 2016-01-22 18:43  xiaocaoera  阅读(633)  评论(0编辑  收藏  举报