目前我宣布了我的UIImage。
我将图片加载到其中。
但是当我调用draw方法时,屏幕上看不到任何内容。试图在我的视图上显示一个小时钟图像。
clockImage = [ UIImage imageWithContentsOfFile:@"clock.png"];
[clockImage drawAtPoint:(CGPointMake(300.0, 300.0))];
我错过了一些重要的步骤吗?是否需要更多设置?
非常感谢, 代码
答案 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)
我认为你错过了正确的图像路径,
如果我正在思考,那就试试吧 -
clockImage = [UIImage imageWithContentsOfFile:filePath]; [clockImage drawAtPoint:(CGPointMake(300.0,300.0))];`
希望这会对你有所帮助。