上下文状态栈

上下文状态栈

  • 需求:画一条横线,一条竖线
  • 获取上下文
    • 在内存中开辟了一个上下文区域,分为存放路径、存放状态两个部分
  • 描述路径

  • 把路径添加到上下文
    • 把路径添加到存放路径的区域
  • 横线:线宽10,颜色红色
    • 设置上下文状态
      • 两条线同时改变了!!
      • 当调用stroke方法时,会把上下文当中存放的所有路径取出来,把上下文当中的状态运用到所有的路径当中
      • 所以两条线状态都被修改
    • 上一个路径添加显示之后,再去添加一个路径,再设置上下文状态
  • 显示到view上面
  • 一个路径只能对应一个状态
  • 在修改上下文状态之前,保存上下文状态
    • CGContextSaveState()
    • 从上下文状态栈中做恢复状态
      • CGContextStateRestoreGState
    • 取出最上面(栈顶)的状态,把当前状态覆盖掉

上下文矩阵操作

  • 形变操作(平移旋转缩放)
  • 画一个 椭圆
    • CGContextTranslateCTM

    • CGContextRotateCTM

    • CGContextScaleCMT

    • 必须要在添加路径之前做操作矩阵操作

你可能感兴趣的:(上下文状态栈)