对于苹果说我们不能在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是不是创建了我需要的上下文?
答案 0 :(得分:1)
您应该绘制到作为drawInContext:
方法的参数传递的上下文。无需拨打UIGraphicsGetCurrentContext()
。