上下文狀態棧spa
上下文狀態棧爲內存中的一塊區域,它用來保存前上下文當的狀態.
咱們獲取的圖層上下文當中其實兩塊區域,一個是存放添加的路徑,一個是用來保存用戶設置的狀態,
這些狀態包括線條的顏色,線寬等.
當咱們把上下文的內容渲染到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);
注意:上下文操做必須得要在添加路徑以前去設置顏色