开发者

Drawing a simple circle on the UIImageView

When the view loads in my iOS application, I dynamically create a UIImageView and place my Image inside of it. I would like to draw a simple circle on top of the UIImageView, but have been unable to do so thus far.

I wrote this code and attempted to draw a circle upon recieving an event from another object...

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBStrokeColor(context, 0, 0, 255, 0.5);
CGContextFillRect(context, CGRectMake(10, 10, 10, 10));

...but nothing happens I receive an error开发者_JS百科.

<Error>: CGContextSetRGBStrokeColor: invalid context 0x0
<Error>: CGContextFillRects: invalid context 0x0

I'm attempting to draw above everything, to no avail. What am I doing wrong?


attempted to draw a circle upon recieving an event from another object. [emphasis mine]

Your CGContextRef is NULL because there is no graphics context in the place that you are calling UIGraphicsGetCurrentContext.

When you're in the drawRect: of a view, a context has already been set up for you, so you can draw and can get the current context if you need to. In an arbitrary method (such as an IBAction) however, there may not be a graphics context for you to draw into. You need to either create one, using perhaps UIGraphicsBeginImageContextWithOptions, or (preferably) just set a flag in your event handler method to indicate that something extra should be drawn the next time through drawRect:, and then call setNeedsDisplay.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜