Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 设置图形上下文以显示UIImage(Obj-C)_Iphone_Objective C_Uiimage_Graphicscontext - Fatal编程技术网

Iphone 设置图形上下文以显示UIImage(Obj-C)

Iphone 设置图形上下文以显示UIImage(Obj-C),iphone,objective-c,uiimage,graphicscontext,Iphone,Objective C,Uiimage,Graphicscontext,我试图在Objective-C中呈现一个UIImage,使用一个简单的iPhone应用程序突破类型来适应环境。但是,我在尝试绘制时遇到了一个错误:CGContextDrawImage:invalid context错误 我的问题是:如何设置UIImage的DrawAtPoint方法使用的上下文 下面是我如何初始化/调用所有内容的相关代码: @interface GameItem : NSObject { IBOutlet UIImage * sprite; CGPoint

我试图在Objective-C中呈现一个UIImage,使用一个简单的iPhone应用程序突破类型来适应环境。但是,我在尝试绘制时遇到了一个错误:CGContextDrawImage:invalid context错误

我的问题是:如何设置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"]];
球继承自GameItem,现在还没有做任何不同的事情

我从drawAtPoint调用afaik获取无效上下文。如有任何能解释如何设置上下文的帮助/指示,将不胜感激


谢谢

尝试在UIGraphicsBeginImageContext和UIGraphicsSendImageContext中包装调用。

尝试在UIGraphicsBeginImageContext和UIGraphicsSendImageContext中包装调用。

如果要将调用绘制到屏幕上,则需要在UIView的-drawRect:方法或CALayer的-DrawInText:方法中找到绘图代码。要更新其内容,需要在UIView或CALayer上调用-setNeedsDisplay。在任何其他时间尝试绘图都会导致出现无效的上下文错误。

如果要将其绘制到屏幕上,则需要在UIView的-drawRect:方法或CALayer的-DrawInText:方法中找到绘图代码。要更新其内容,需要在UIView或CALayer上调用-setNeedsDisplay。在任何其他时间尝试绘图都会导致出现无效的上下文错误。

并使用UIGraphicsGetCurrentContext作为解决错误的上下文,但它仍然不会显示在屏幕上。draw方法现在如下所示:UIGraphicsBeginImageContextsprite.size;[雪碧提取点:位置];UID图像上下文;我不确定我需要传递什么到UIGraphicsBeginImageContext中,尽管我发现的其他示例只是传递了图像大小。另外,@nathanjosiah:我不确定这样获取上下文对我有什么好处,因为它不是任何UIImage draw方法的参数,我可以找到我应该用它做什么?谢谢:-并使用UIGraphicsGetCurrentContext作为解决错误的上下文,但它仍然没有显示在屏幕上。draw方法现在如下所示:UIGraphicsBeginImageContextsprite.size;[雪碧提取点:位置];UID图像上下文;我不确定我需要传递什么到UIGraphicsBeginImageContext中,尽管我发现的其他示例只是传递了图像大小。另外,@nathanjosiah:我不确定这样获取上下文对我有什么好处,因为它不是任何UIImage draw方法的参数,我可以找到我应该用它做什么?谢谢:-使用以rect为参数的构造函数创建对象,或在绘制任何对象之前创建对象帧rect。使用以rect为参数的构造函数创建对象,或在绘制任何对象之前创建对象帧rect。