我正在尝试将 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 对象的负载。
听起来像是你在呼唤drawRect:
直接地。因此,它会从您的调用中调用一次,并从真正的绘图循环中调用一次。
- 在创建上下文的情况下,您可以在新的上下文中进行所有绘图,然后将其丢弃,因此您永远看不到任何内容
- 由于缺少上下文创建,您会从手动调用中收到错误
drawRect:
,并且实际绘制发生在真实的drawRect:
这样你就可以看到你的形象了。
不要打电话drawRect:
直接地。称呼setNeedsDisplay
and drawRect:
我们将在适当的时候呼叫您。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)