码迷,mamicode.com
首页 > 其他好文 > 详细

Quart2D图形上下文

时间:2015-04-08 14:43:03      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:

学习了下绘制文本图形后,下面学习图形上下文栈。

在Quart 2D绘制简单图形http://www.cnblogs.com/cuiyw/p/4401857.html时,如果绘制不一样属性的内容时,在渲染之前都会重新设置边框颜色、填充颜色等这些,有时可能会先绘制一个红色的线,再绘制蓝色的线,然后再绘制和第一条属性一样的线,如果按之前的方法可能每次绘制渲染都要重新设置,那样就会变的特别麻烦,要解决这个问题可以用图形上下文栈。

在获取图形上下文之后,通过 CGContextSaveGState(ctx);方法,把当前获取的上下文拷贝一份,保存一份最纯洁的图形上下文。

在画第二条线之前,使用CGContextRestoreGState(ctx);方法,还原开始的时候保存的那份最纯洁的图形上下文。
     CGContextRef context=UIGraphicsGetCurrentContext();
     CGContextMoveToPoint(context, 20, 100);
     CGContextAddLineToPoint(context, 30, 200);
     CGContextSetRGBStrokeColor(context, 1.0, 0, 1.0, 1.0);
    //保存当前画布1的样式属性
     CGContextSaveGState(context);
     CGContextStrokePath(context);
    
     CGContextMoveToPoint(context, 30, 100);
     CGContextAddLineToPoint(context, 40, 200);
     CGContextSetRGBStrokeColor(context, 1.0, 1.0, 1.0, 1.0);
    //保存当前画布2的样式属性
     CGContextSaveGState(context);
     CGContextStrokePath(context);
    
    // 恢复画布2属性到以前保存样式 若无则按最近一次设置的样式
     CGContextRestoreGState(context);
     CGContextMoveToPoint(context, 40, 100);
     CGContextAddLineToPoint(context, 50, 200);
     CGContextStrokePath(context);
    
     // 恢复画布1属性到以前保存样式 若无则按最近一次设置的样式
     CGContextRestoreGState(context);
     CGContextMoveToPoint(context, 50, 100);
     CGContextAddLineToPoint(context, 60, 200);
     CGContextStrokePath(context);

运行结果:

技术分享

 

Quart2D图形上下文

标签:

原文地址:http://www.cnblogs.com/cuiyw/p/4402091.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!