我正在使用UIGraphicsPushContext在drawRect中推送一个上下文,如下所示:
- (void)drawRect:(CGRect)rect {
// Create Bitmap Graphics Context
UIContextRef ctxt = //blah blah;
// Push the custom context in the graphics stack
UIGraphicsPushContext(ctxt);
// Draw Stuff
// Get Image from custom context
}
我的问题是图像没有显示在屏幕上(在视图上),但我可以确认我已经成功绘制了上下文,因为从上下文中检索到的图像显示的图像类似于我想要绘制的图像。 / p>
我想要实现的是替换我对UIGraphicsGetCurrentContext()的调用(它可以工作并显示图像)并使用(推送)我可以使用的自定义上下文。
我在这里遗漏了什么吗?谢谢!
答案 0 :(得分:0)
如果要绘制图像然后在视图中显示它,您必须在视图上绘制它,然后在图像上绘制,或者首先绘制到图像,然后在视图上绘制该图像。要实现第二个选项,请执行以下操作:
- (void)drawRect:(CGRect)rect {
// Create image
UIGraphicsBeginImageContext(rect.size);
CGContextRef ctx = UIGraphicsGetCurrentContext();
// Draw the image content using ctx
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// Draw image on view
[image drawAtPoint:CGPointZero];
}
答案 1 :(得分:0)
我想你错过了这个:
- (void)drawRect:(CGRect)rect {
// Create Bitmap Graphics Context
UIContextRef ctxt = //blah blah;
// Push the custom context in the graphics stack
UIGraphicsPushContext(ctxt);
// Draw Stuff
// Get Image from custom context
//blah blah
UIGraphicsPopContext();
}
使用UIGraphicsPopContext()恢复上一个上下文