关情纸尾-----Quartz2D-上下文状态栈与上下文的矩阵操作
2015-10-02 17:02
225 查看
上下文状态栈
上下文状态栈为内存中的一块区域,它用来保存前上下文当的状态.
我们获取的图层上下文当中其实两块区域,一个是存放添加的路径,一个是用来保存用户设置的状态,
这些状态包括线条的颜色,线宽等.
当我们把上下文的内容渲染到View上面的时候,
它会自动将设置的所有上下文状态运行到保存的路径上面显示到View上面.
如果想要有多种状态,可以先把路径渲染到View上面,
再从新添加路径.添加完路径之后,重新设置上下文的状态.
再把新设置的上下文状态渲染到View上面.
我们可以利用上下文状态栈的方式,在设置状态之前,把之前的状态保存到上下文状态栈里面.
下一次想要再使用之前的状态时, 可以从上下文状态当中取出之前保存的上下文状态.
1.如何把上下文状态保存到上下文状态栈?
CGContextSaveGState(ctx);
2.如何从上下文状态栈中取出上下文状态?
CGContextRestoreGState(ctx);
上下文的矩阵
上下文的矩阵操作其实就是修改上下文的形变,
主要有以下几种
平移
CGContextTranslateCTM(ctx, 100, 100);
旋转
CGContextRotateCTM(ctx, M_2_PI);
缩放
CGContextScaleCTM(ctx, 0.5, 0.5);
注意:上下文操作必须得要在添加路径之前去设置
上下文状态栈为内存中的一块区域,它用来保存前上下文当的状态.
我们获取的图层上下文当中其实两块区域,一个是存放添加的路径,一个是用来保存用户设置的状态,
这些状态包括线条的颜色,线宽等.
当我们把上下文的内容渲染到View上面的时候,
它会自动将设置的所有上下文状态运行到保存的路径上面显示到View上面.
如果想要有多种状态,可以先把路径渲染到View上面,
再从新添加路径.添加完路径之后,重新设置上下文的状态.
再把新设置的上下文状态渲染到View上面.
我们可以利用上下文状态栈的方式,在设置状态之前,把之前的状态保存到上下文状态栈里面.
下一次想要再使用之前的状态时, 可以从上下文状态当中取出之前保存的上下文状态.
1.如何把上下文状态保存到上下文状态栈?
CGContextSaveGState(ctx);
2.如何从上下文状态栈中取出上下文状态?
CGContextRestoreGState(ctx);
上下文的矩阵
上下文的矩阵操作其实就是修改上下文的形变,
主要有以下几种
平移
CGContextTranslateCTM(ctx, 100, 100);
旋转
CGContextRotateCTM(ctx, M_2_PI);
缩放
CGContextScaleCTM(ctx, 0.5, 0.5);
注意:上下文操作必须得要在添加路径之前去设置
相关文章推荐
- 浏览器缓存浅析(一)
- Fast paging with MongoDB
- pat1008Elevator (20)
- Win32 线程知识点梳理五
- 《程序猿》约稿:在多任务的时间管理,规划的目标和任务分解
- ArrayList的实现原理分析
- mysql主备库数据不一致的原因和解决方案
- poj--2251--Dungeon Master
- Android 按键消息处理
- 我心里的用户体验
- 关于EMGU CV的那些事——3.不同角点检测算法比较
- POJ: Exponentiation
- LinkedHashSet实现原理分析
- ESP8266-01细玩笔记(二)
- CodeForces 414A Mashmokh and Numbers
- Node.js第三方模块之htmlparser2
- iOS8 沙盒路径变化特性
- 【2016内推】计算机找工作面经
- windows下安装ubuntu15.04
- uva 590 Always on the run 跑路