我在drawInContext中遇到了无效的上下文错误

时间:2011-04-13 09:36:10

标签: objective-c calayer

对于苹果说我们不能在UIImageView中使用drawRec :.所以我决定使用CALayer来完成工作,并将图层添加到UIImageView.layer。 我创建了一个名为MyCALayer的类扩展了CALayer类,并使用以下方法覆盖了drawInContex:方法:

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context,5.0f);
CGContextSetStrokeColorWithColor(context,[UIColor yellowColor].CGColor); 
CGRect newRec = CGRectMake(55,55,55,55);
CGContextAddRect(context,newRec);
CGContextDrawPath(context,kCGPathStroke);

我在touchesBegan:withEvent中使用setNeedsDisplay来调用drawInContext :.

使用上下文的每个逻辑(例如CGContextSetLineWidth(context,5.0f);)都会得到一个空句柄警告代码,如:

Error:CGContextSetWidth: invalid context 0x0

那么,setNeedsDisplay是不是创建了我需要的上下文?

1 个答案:

答案 0 :(得分:1)

您应该绘制到作为drawInContext:方法的参数传递的上下文。无需拨打UIGraphicsGetCurrentContext()