绘制UIImage需要什么设置?

时间:2010-09-21 22:44:43

标签: iphone objective-c

目前我宣布了我的UIImage。

我将图片加载到其中。

但是当我调用draw方法时,屏幕上看不到任何内容。试图在我的视图上显示一个小时钟图像。

clockImage = [ UIImage imageWithContentsOfFile:@"clock.png"];
[clockImage drawAtPoint:(CGPointMake(300.0, 300.0))];

我错过了一些重要的步骤吗?是否需要更多设置?

非常感谢, 代码

4 个答案:

答案 0 :(得分:4)

您遇到的问题是由drawAtPoint:仅用于有效图形上下文的事实引起的,通常是drawRect:的{​​{1}}方法(为您设置与设备屏幕对应的UIView。如果您决定使用此方法,请记住将图像加载到视图的CGContext方法之外的其他位置,以避免在需要将视图绘制到屏幕时执行此类内存密集型操作。

另一方面,如果您只是需要在屏幕上显示图像,最好的办法是查看drawRect:,这将为您完成大部分繁重工作。

答案 1 :(得分:3)

通常,您会创建一个UIImageView并将图片加载到该图片中,以便将图片保留在屏幕上。否则,只要操作系统需要,您就需要重新绘制UIImage。

UIImageView* view = [[UIImageView alloc] initWithImage:
                                [UIImage imageWithContentsOfFile:@"clock.png"]];
[self.view addSubView:view];

答案 2 :(得分:1)

您在哪里放置此代码? drawAtPoint:将绘制到当前活动的图形上下文中,如果没有创建图形上下文,则会失败。您必须将drawAtPoint:行放入drawRect:(已创建图形上下文的位置)。

答案 3 :(得分:0)

我认为你错过了正确的图像路径,

如果我正在思考,那就试试吧 -

`NSString * filePath = [[NSBundle mainBundle] pathForResource:@“clock”ofType:@“png”];

clockImage = [UIImage imageWithContentsOfFile:filePath]; [clockImage drawAtPoint:(CGPointMake(300.0,300.0))];`

希望这会对你有所帮助。