次の 2 つの drawRect メソッドがあります。
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
// do drawing here
CGContextRestoreGState(context);
}
と
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
UIGraphicsPushContext(context);
// do drawing here
UIGraphicsPopContext();
}
UIGraphicsPushContext / UIGraphicsPopContext はUIKitからのもの で、CGContextSaveGState / CGContextRestoreGState はCoreGraphicsからのものです。
質問: これらの方法の違いは何ですか? どちらを使用するのが良いですか?ある方法が他の方法よりも優れていることを証明する例や、その逆の例はありますか?