我不太确定使用Core Graphics绘制我的应用程序的视觉元素而不是提供图像是否有益。在内存保存和运行速度方面哪种方式更好?
答案 0 :(得分:1)
在内存保存和运行时速度方面哪种方式更好?
+UIImage:imageNamed:
效率最高。它缓存图像,即只有一个图像副本存储在存储器中,并且在需要时对图像进行解码(从其PNG,JPEG,TIFF等数据)并保留以备将来重用。如果您担心内存使用,如果您运行不足或进入后台,iOS将清除UIImage
缓存。
使用Core Graphics绘制图像不会为您进行任何缓存,除非您编写代码将图像绘制到上下文中,将上下文保存为位图,缓存位图,然后再重复使用。因此,每次需要时,你最终会反复绘制相同的东西。例如,如果您覆盖UIView的-drawRect:
来绘制图像,那么在动画期间,它将针对每个帧(每秒60次)进行调用。这不必要地耗费CPU周期和电池寿命。
底线是取决于你的应用程序是什么和做什么。
答案 1 :(得分:0)
如果你不需要你的图像更改或动画很多,那么你应该直接使用图像。除非你在一个视图控制器中有100个图像,否则不要太担心性能。
如果iPhone可以处理速度需要的游戏,那么使用各种图像运行应用程序是一件容易的事。 希望这会有所帮助。