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

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

当 View 加载到我的 iOS 应用程序中时,我动态创建一个 UIImageView 并将我的图像放置在其中。我想在 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

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

最佳答案

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

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

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

关于ios - 在 UIImageView 上绘制一个简单的圆圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5683492/

相关文章:

iphone - 如何使用核心数据获取每个第 n 个对象

android - 在 flutter 应用程序中添加启动画面的正确方法是什么?

ios - 链接 RACSignals 和回滚

ios - 接收者没有标识符“***”的segue

ios - 如何在 iOS 中创建具有动态内容的 View ?

ios - 在播放/暂停 UIButton 之间切换

ios - Objective-C NSURLConnection didReceiveData在NSData中创建错误的JSON

ios - UIAlertAction - 处理 Action

ios - 包含在 UIPopoverController 中时的 UINavigationBar 外观代理

iphone - 电话号码的 UITextField