【发布时间】:2011-10-04 02:31:58
【问题描述】:
我正在尝试将 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();
}
据我了解,我不需要设置图像上下文来执行此操作,实际上如果没有它,我确实会看到在视图中绘制的图像,但我也在日志中收到此错误...
<Error>: CGContextSaveGState: invalid context 0x0
如果我取消注释 UIGraphicsBeginImageContext 行,我不会绘制任何内容,也不会出现错误。
我是否需要使用默认的图形上下文并以某种方式声明它?
我需要绘制图像,因为我想在上下文中添加图像并且不能只生成 UIImageView 对象的负载。
【问题讨论】:
-
您必须在其他地方有一些其他代码正在调用 CGContextSaveGState?你是说只有
UIImage=和drawInRect行,你会得到这个错误? -
如果我取消注释该代码中的上下文行,我不会收到错误消息,但在我的视图中看不到任何内容。因为它是我看到我的图像被绘制但得到上下文错误。很奇怪。
-
而且你自己不在其他任何地方调用 CGContextSaveGState 吗?
-
不。我现在正在测试这个。将尝试仅绘制一些文本。
-
另外,你不会直接打电话给
drawRect,是吗?如果是这样,您在绘图时可能没有有效的上下文,这可能会给您带来错误。
标签: ios cocoa-touch uikit uiimage