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

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

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画布, 渲染是按照本次绘制的绘制状态来绘制的,

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

  

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

  

最新文章

  1. MVVM架构~knockoutjs与MVC配合,实现列表的增删改功能
  2. my_log
  3. JSON简介以及用法汇总
  4. Java 中常用缓存Cache机制的实现《二》
  5. Android中使用自定义View实现下载进度的显示
  6. 点云匹配和ICP算法概述
  7. FIleReader无法解决编码问题
  8. Webbrowser 取消下载提示框
  9. Discuz云平台站点信息同步失败,An unknown error occurred. May be DNS Error.
  10. codeforces 652D . Nested Segments 线段树
  11. TEX Quotes(字符串,水)
  12. LPC1768外部中断与GPIO中断
  13. java学习书籍推荐
  14. 分布式集群下的Session存储方式窥探
  15. Linux下I/O多路转接之epoll(绝对经典)
  16. TCP的发送系列 — tcp_sendmsg()的实现(二)
  17. 自定义Token的CAS登录
  18. [C#]如何将 string 安全地转换为 int
  19. linux之 修改磁盘调度算法
  20. Alpha阶段敏捷冲刺⑦

热门文章

  1. 【Knockout.js 学习体验之旅】(3)模板绑定
  2. Entity Framework 6 Recipes 2nd Edition(13-6)译 -> 自动编译的LINQ查询
  3. PHP_VERSION_ID是如何定义的
  4. javascript中的浮点数运算
  5. 高性能JavaScript--数据存储(简要学习笔记二)
  6. K-Means聚类算法原理
  7. linq to js使用汇总
  8. ASP.NET Core 中文文档 第三章 原理(4)路由
  9. [Maven]Maven入门教程
  10. 基于 Cmd MarkDown 的 markdown 语法学习