1

我不太确定使用 Core Graphics 绘制我的应用程序的视觉元素而不是提供图像是否有益。在内存保存和运行速度方面哪种方式更好?

4

2 回答 2

1

在内存保存和运行速度方面,哪种方式更好?

+UIImage:imageNamed:是最有效的。它缓存图像,即内存中只有一个图像副本,并且在需要时对图像进行解码(从其 PNG、JPEG、TIFF 等数据)并保留以供将来重用。如果您担心内存使用,UIImage如果您运行不足或进入后台,iOS 将清除缓存。

使用 Core Graphics 绘制图像不会为您进行任何缓存,除非您编写代码将图像绘制到上下文中,将上下文保存为位图,缓存位图,然后稍后再使用它。因此,每次需要时,您最终都会一遍又一遍地绘制相同的东西。例如,如果您覆盖 UIView-drawRect:来绘制图像,那么在动画期间,它将为每一帧调用(每秒 60 次)。这会不必要地消耗 CPU 周期和电池寿命。

底线是它取决于您的应用程序是什么和做什么。

于 2013-02-01T15:28:48.007 回答
0

如果您不需要对图像进行太多更改或动画处理,那么您应该直接使用图像。除非您在单个视图控制器中有 100 个图像,否则不要太担心性能。

如果 iPhone 可以处理像极品飞车这样的游戏,那么运行一个带有各种图像的应用程序是一件容易的事。希望这可以帮助。

于 2013-02-01T11:10:12.360 回答