我正在关注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。
答案 0 :(得分:2)
更改
CGContextSetFillColor(context, [UIColor redColor].CGColor);
要
CGContextSetFillColor(context, CGColorGetComponents([[UIColor redColor] CGColor]));