尝试在屏幕上绘制圆圈时出现严重错误

时间:2014-07-27 02:45:59

标签: ios objective-c fatal-error drawrect

我试图画一个圆圈,所以我有以下方法:

- (void)drawRect:(CGRect)rect {
    CGRect leadingCircle = CGRectInset(rect, 2, 2);;
    UIBezierPath *aPath = [UIBezierPath bezierPathWithOvalInRect:leadingCircle];
    CGContextRef aRef = UIGraphicsGetCurrentContext();
    CGContextTranslateCTM(aRef, 20, 20);
    CGContextSetRGBFillColor(aRef, 0.1, 0.05, 0.9, 1);
    CGContextSetRGBStrokeColor(aRef, 0, 0, 0, 1);
    CGContextRestoreGState(aRef); 
}

然后我从viewDidLoad中调用它:

CGRect myRect = CGRectMake(0, 0, 60, 60);
[self drawRect:myRect];

但未绘制任何内容,并在控制台中显示以下消息:

  

CGContextSetRGBFillColor:无效的上下文0x0。这是一个严重的错误。该应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性的整体降低。此通知是礼貌的:请解决此问题。在即将到来的更新中,它将成为一个致命的错误。

提前致谢。

1 个答案:

答案 0 :(得分:-1)

用这个改变你的代码。

- (void)drawRect:(CGRect)rect {
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetLineWidth(context, 4.0);
    CGContextSetStrokeColorWithColor(context, 
      [UIColor blueColor].CGColor);
    CGRect rectangle = CGRectMake(60,170,200,80);
    CGContextAddEllipseInRect(context, rectangle);
    CGContextStrokePath(context);
}