0

このコードは何もしないようです。ビルドは成功し、エラーは発生しません。画面に長方形は描画されません。

- (void)viewDidLoad
{

    [super viewDidLoad];

    UIColor *reliantMagenta             = [UIColor colorWithRed:208.0f / 255.0f green:27.0f / 255.0f blue:124.0f / 255.0f alpha:1];

    CALayer *reliantCanvasLayer         = [CALayer layer];

    reliantCanvasLayer.frame            = CGRectMake(0, 0, 640, 960);

    [[[self view] layer] addSublayer:reliantCanvasLayer];

    CGContextRef ctx                    = UIGraphicsGetCurrentContext();
    CGRect leftRect                     = CGRectMake(0, 0, 200, 300);

    CGContextSaveGState(ctx);
    CGContextSetFillColorWithColor(ctx, reliantMagenta.CGColor);

    CGContextFillRect(ctx, leftRect);
    CGContextRestoreGState(ctx);

}

私はクォーツを学んでいて、本当にそれでスラッシングしています。UIView、CALayers、CGLayers、およびコンテキストの関係を説明したい場合は、これも大きな助けになりますが、必須ではなく、何が起こっているのかを理解するのに苦労します。

4

1 に答える 1

4

Quartzを使い始める場合は、Quartz2Dプログラミングガイドから始める必要があります。このガイドでは、これらすべてについて説明しています。ここでの主な間違いは、で使用できるコンテキストがないことですviewDidLoad。この種の描画は、通常、で行われdrawRect:ます。この時点で、への呼び出しがUIGraphicsGetCurrentContext()返されます。NULL

プログラミングガイドを読んだ後、さらに質問があるかもしれませんが、そこからカスタム描画について学び始める必要があります。

于 2012-10-01T02:32:02.750 に答える