问题描述
|
当视图加载到我的iOS应用程序中时,我会动态创建一个UIImageView并将其图像放置在其中。我想在UIImageView的顶部绘制一个简单的圆圈,但是到目前为止还不能这样做。
我编写了这段代码,并试图在从另一个对象接收到事件时画一个圆圈。
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBstrokeColor(context,255,0.5);
CGContextFillRect(context,CGRectMake(10,10,10));
...但是没有任何反应,我收到一个错误。
<Error>: CGContextSetRGBstrokeColor: invalid context 0x0
<Error>: CGContextFillRects: invalid context 0x0
我试图超越一切,但无济于事。我究竟做错了什么?
解决方法
尝试从另一个对象接收到事件后画一个圆。 [强调我的]
您的
CGContextRef
是NULL
,因为您要呼叫UIGraphicsGetCurrentContext
的位置没有图形上下文。
当您位于视图的“ 5”处时,已经为您设置了上下文,因此您可以进行绘制并根据需要获取当前上下文。但是,在任意方法(例如ѭ6)中,可能没有可供您绘制的图形上下文。您可能需要使用UIGraphicsBeginImageContextWithOptions
创建一个,或者(最好)在事件处理程序方法中设置一个标志,以指示下次应通过drawRect:
绘制一些额外的东西,然后调用setNeedsDisplay
。