上下文状态栈
- 需求:画一条横线,一条竖线
- 获取上下文
- 在内存中开辟了一个上下文区域,分为存放路径、存放状态两个部分
-
描述路径
- 把路径添加到上下文
- 把路径添加到存放路径的区域
- 横线:线宽10,颜色红色
- 设置上下文状态
- 两条线同时改变了!!
- 当调用stroke方法时,会把上下文当中存放的所有路径取出来,把上下文当中的状态运用到所有的路径当中
- 所以两条线状态都被修改
- 上一个路径添加显示之后,再去添加一个路径,再设置上下文状态
- 设置上下文状态
- 显示到view上面
一个路径只能对应一个状态
- 在修改上下文状态之前,保存上下文状态
- CGContextSaveState()
- 从上下文状态栈中做恢复状态
- CGContextStateRestoreGState
- 取出最上面(栈顶)的状态,把当前状态覆盖掉
上下文矩阵操作
- 形变操作(平移旋转缩放)
- 画一个 椭圆
-
CGContextTranslateCTM
-
CGContextRotateCTM
-
CGContextScaleCMT
-
必须要在添加路径之前做操作矩阵操作
-
网友评论