Core Graphics之(五):图形上下文栈

来源:互联网 发布:iphone6s 4g网络用不了 编辑:程序博客网 时间:2024/04/29 23:39

图形上下文栈,即使用了栈的相关属性,将上下文保存在栈中,并进行入栈和出栈的操作。

入栈的上下文保存了相关的设置,出栈后,栈中将只保存最原始的上下文。

栈:先进后出,后进先出


效果图:

- (void)drawRect:(CGRect)rect{    //1、获取上下文 类似于单例对象 在drawRect方法中不管调用几次都返回同一个对象    CGContextRef ctx = UIGraphicsGetCurrentContext();        //保存上下文状态 将ctx拷贝一份放到栈中    CGContextSaveGState(ctx);        //2、设置绘图状态    [[UIColor greenColor] set];    CGContextSetLineWidth(ctx, 10);    CGContextSetLineCap(ctx, kCGLineCapRound);        //3、第一根线    CGContextMoveToPoint(ctx, 50, 50);    CGContextAddLineToPoint(ctx, 250, 200);    CGContextDrawPath(ctx, kCGPathStroke);        //恢复上下文状态 将栈顶的上下文出栈,替换当前的上下文    CGContextRestoreGState(ctx);        //第二根线    CGContextMoveToPoint(ctx, 100, 200);    CGContextAddLineToPoint(ctx, 300, 300);        //4、渲染    CGContextStrokePath(ctx);//需要一个参数    //CGContextDrawPath(ctx, kCGPathStroke);//等价于上面的方法,需要两个参数}

使用图形上下文栈可以快速设置不同的图形。

0 0
原创粉丝点击