zoukankan      html  css  js  c++  java
  • 关情纸尾-----Quartz2D-上下文状态栈与上下文的矩阵操作

    上下文状态栈


    上下文状态栈为内存中的一块区域,它用来保存前上下文当的状态.
    我们获取的图层上下文当中其实两块区域,一个是存放添加的路径,一个是用来保存用户设置的状态,
    这些状态包括线条的颜色,线宽等.
    当我们把上下文的内容渲染到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);
    注意:上下文操作必须得要在添加路径之前去设置

  • 相关阅读:
    值得收藏的14款响应式前端开发框架
    简单几步把LOGO变字体
    7 款免费的 Metro UI 模板
    JPG渐进 & PNG/PNG24 交错测试
    你的钱,以后是放银行还是放支付宝?
    Bise IE6 在你的网站上加上它让IE滚蛋吧
    单例模式常见场景
    10 个最新的开发者工具
    大流量网站的底层系统架构
    DNS解析全过程及原理
  • 原文地址:https://www.cnblogs.com/Lorraine1/p/4852416.html
Copyright © 2011-2022 走看看