25

次の 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からのものです。

質問: これらの方法の違いは何ですか? どちらを使用するのが良いですか?ある方法が他の方法よりも優れていることを証明する例や、その逆の例はありますか?

4

2 に答える 2