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);

}

我只是在学习 Quartz,并且非常喜欢它。如果你想解释 UIViews、CALayers、CGLayers 和上下文之间的关系,这也会有很大帮助,但不是必需的,只是很难理解发生了什么。

4

1 回答 1

4

如果您是从 Quartz 开始的,那么您应该从Quartz 2D Programming Guide开始,其中介绍了所有这些。您在这里的主要错误是viewDidLoad. 这种绘图通常在drawRect:. 您的调用此时UIGraphicsGetCurrentContext()返回NULL

通读编程指南后,您可能会有更多问题,但您应该从那里开始学习自定义绘图。

于 2012-10-01T02:32:02.750 回答