在UIImageView上绘制一个简单的圆圈

时间:2011-04-16 00:02:42

标签: ios objective-c cocoa-touch quartz-graphics

当我在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

我试图在一切之上画画,但无济于事。我做错了什么?

1 个答案:

答案 0 :(得分:4)

  

尝试在从另一个对象接收事件时绘制一个圆圈。 [强调我的]

您的CGContextRefNULL,因为您呼叫的地方UIGraphicsGetCurrentContext没有图形上下文。

当您在视图的drawRect:中时,已经为您设置了上下文,因此您可以绘制并在需要时获取当前上下文。但是,在任意方法(例如IBAction)中,可能没有可供绘制的图形上下文。您需要使用UIGraphicsBeginImageContextWithOptions创建一个,或者(最好)只在事件处理程序方法中设置一个标志,以指示下次通过drawRect:时应绘制额外的内容,然后调用{ {1}}。