当我在iOS应用程序中加载视图时,我会动态创建一个UIImageView并将我的Image放在其中。我想在UIImageView上绘制一个简单的圆圈,但到目前为止还无法这样做。
我编写了这段代码并试图在收到另一个对象的事件后绘制一个圆圈......
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBStrokeColor(context, 0, 0, 255, 0.5);
CGContextFillRect(context, CGRectMake(10, 10, 10, 10));
...但没有任何反应我收到错误。
<Error>: CGContextSetRGBStrokeColor: invalid context 0x0
<Error>: CGContextFillRects: invalid context 0x0
我试图在一切之上画画,但无济于事。我做错了什么?
答案 0 :(得分:4)
尝试在从另一个对象接收事件时绘制一个圆圈。 [强调我的]
您的CGContextRef
是NULL
,因为您呼叫的地方UIGraphicsGetCurrentContext
没有图形上下文。
当您在视图的drawRect:
中时,已经为您设置了上下文,因此您可以绘制并在需要时获取当前上下文。但是,在任意方法(例如IBAction
)中,可能没有可供绘制的图形上下文。您需要使用UIGraphicsBeginImageContextWithOptions
创建一个,或者(最好)只在事件处理程序方法中设置一个标志,以指示下次通过drawRect:
时应绘制额外的内容,然后调用{ {1}}。