0

我正在关注来自复数视觉的视频教程,该视频教程在屏幕上绘制了一个红色矩形。我有一个名为 PSViewDemo 的 UIView 子类,它在 .m 文件中有以下代码:

// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColor(context, [UIColor redColor].CGColor);
    CGContextFillRect(context, CGRectMake(40, 400,100,200));
    // Drawing code
}

我在 viewcontroller 的 Viewdidload 中为应用程序中的唯一视图调用它(直到代码添加子视图)。

- (void)viewDidLoad
{

    [super viewDidLoad];
    PSViewDemo *dv = [[PSViewDemo alloc] initWithFrame:CGRectMake( 0, 0, 320, 480)];
    [self.view addSubview:dv];
    // Do any additional setup after loading the view, typically from a nib.
}

整个事情编译并运行没有错误,但屏幕上没有红色矩形。

我错过了什么?我很确定我完全按照教程进行操作,所以自从教程制作以来,Cocoa 中可能发生了一些变化?我正在使用 xCode 5。

4

1 回答 1

2

改变

CGContextSetFillColor(context, [UIColor redColor].CGColor);

CGContextSetFillColor(context, CGColorGetComponents([[UIColor redColor] CGColor]));
于 2013-10-07T01:10:11.853 回答