CoreGraphics Contextの保存と復帰

CoreGraphicsでは, いわゆるcontextを引数にとるAPIで描画などをしていきます。

色の変更など, contextに対して変更を加えると, そのcontextが変更されてしまい。元の状態に戻すには逆の操作やクリア操作をしなければなりません。

そこで用意されているのが, contextの状態保存です。

CGContextSaveGStateで保存して, CGContextRestoreGStateで復帰です。いずれもCGContextRefを引数にとります。

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context); // Save

// Here is any operations
CGContextRestoreGState(context); // Restore