1

我正在尝试在 Objective-C 中渲染 UIImage(在一个简单的 iPhone 应用程序(突破类型的东西)上工作以适应环境)。但是,当我尝试绘制它时,出现“错误:CGContextDrawImage:无效上下文”错误。

我的问题是:如何设置 UIImage 的 DrawAtPoint 方法使用的上下文?

这里是我如何初始化/调用一切的相关代码:

@interface GameItem : NSObject
{
    IBOutlet UIImage    * sprite;
    CGPoint                 pos;
}

- (id) initWithPositionAndSprite: (CGPoint)placementPosition :(UIImage*) blockImage;
- (void) update;

@property CGPoint pos;

@end

更新中:

[sprite drawAtPoint:pos];

并像这样初始化它:

newBall = [[Ball alloc] initWithPositionAndSprite:CGPointMake(3.0, 4.0) :[UIImage imageNamed:@"ball.png"]];

(Ball 继承自 GameItem,目前还没有做任何不同的事情)

我从 drawAtPoint 调用 afaik 中得到了无效的上下文。任何指向将解释如何设置上下文的帮助/指针将不胜感激。

谢谢!

4

2 回答 2

3

如果要将其绘制到屏幕上,您需要在a (或a )的-drawRect:方法中找到您的绘图代码。要更新其内容,您需要调用or 。在任何其他时间尝试绘图都会导致您看到的“无效上下文”错误。UIView–drawInContext:CALayer-setNeedsDisplayUIViewCALayer

于 2010-01-29T19:22:55.110 回答
2

尝试将呼叫包装在UIGraphicsBeginImageContext()and中UIGraphicsEndImageContext()

于 2010-01-28T23:27:35.093 回答