无法在屏幕上绘制矩形ios

时间:2013-10-07 00:41:34

标签: ios objective-c

我正在关注multipsight的视频教程,该教程在屏幕上绘制一个红色矩形。我有一个名为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。

1 个答案:

答案 0 :(得分:2)

更改

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

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