记录一次Quartz2D学习(四)

(三)内主要讲了图片与文字的绘制

 本次主要讲解 绘制状态的保存与恢复,以及对它的使用

4.绘制状态  

  4.1 绘制状态的保存与恢复,以及对它的应用

  TIP:通过对保存恢复绘制状以及多次的渲染,可以绘制出复合的图形与涂层

- (void)drawRect:(CGRect)rect {

    //获取上下文

    CGContextRef  ctx = UIGraphicsGetCurrentContext();

    //设置线条的宽度

    CGContextSetLineWidth(ctx, 10);

    //保存绘制的状态

    CGContextSaveGState(ctx);

    //设置线条的颜色

    [[UIColor yellowColor] set];

    //移动起始点到

    CGContextMoveToPoint(ctx, 100, 100);

    //添加线条

    CGContextAddLineToPoint(ctx, 150, 150);

    //渲染

    CGContextStrokePath(ctx);

    

    //恢复到上次绘制状态(绘制第二条线条)

    CGContextRestoreGState(ctx);

    //移动到起始点

    CGContextMoveToPoint(ctx, 200, 200);

    //添加线条

    CGContextAddLineToPoint(ctx, 150, 150);

    //渲染

    CGContextStrokePath(ctx);

}

 

 

 

 

 

4.2绘制状态保存与恢复的说明

  类似与H5内的canvas画布, 渲染是按照本次绘制的绘制状态来绘制的,

  如果对上次的绘制状态进行了保存,下次调用的时候就会处于上次的绘制状态(假如没有做出改变)。  

  

  通过与多次渲染的协调,可以绘制出复杂图层

 

 

 

 

 

 

 

 

 

  

原文地址:https://www.cnblogs.com/thxios/p/5144108.html