我正在尝试将 UIImage 绘制到我的 UIView 的上下文中。我已经将此代码与上下文内容一起使用,并在其中注释掉......
- (void)drawRect:(CGRect)rect
{
//UIGraphicsBeginImageContextWithOptions(rect.size,YES,[[UIScreen mainScreen] scale]);
//UIGraphicsBeginImageContext(rect.size);
UIImage *newImage = [UIImage imageNamed:@"character_1_0001.png"];
//[newImage drawAtPoint:CGPointMake(200, 200)];
[newImage drawInRect:rect];
//UIGraphicsEndImageContext();
}
据我了解,我不需要设置图像上下文来执行此操作,实际上如果没有它,我确实会看到在 View 中绘制的图像,但我也在日志中收到此错误...
<Error>: CGContextSaveGState: invalid context 0x0
如果我取消注释 UIGraphicsBeginImageContext 行,我不会画任何东西,也不会出错。
我是否需要使用默认的图形上下文并以某种方式声明它?
我需要绘制图像,因为我想在上下文中添加它并且不能只生成 UIImageView 对象的负载。
最佳答案
听起来你在打电话 drawRect:
直接地。因此,它会从您的电话中调用一次,然后从真正的绘图循环中调用一次。
drawRect:
中得到错误。 ,实际绘制发生在正版drawRect:
所以你看到你的形象。 请勿调用
drawRect:
直接地。调用 setNeedsDisplay
和 drawRect:
将在适当的时候为您打电话。
关于ios - 绘制 UIImage 时出现无效的上下文错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7642731/