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 }