Ios 使用核心图形绘制元素或提供图像?

Ios 使用核心图形绘制元素或提供图像?,ios,resources,core-graphics,Ios,Resources,Core Graphics,我不确定用核心图形绘制我的应用程序的视觉元素而不是提供图像是否有益。在内存保存和运行速度方面,哪种方法更好 如果你不需要图像进行太多的更改或设置动画,那么你应该直接使用图像。不要太担心性能,除非你在一个视图控制器中有100个图像 如果iPhone能够处理诸如速度需求之类的游戏,那么运行带有各种图像的应用程序是一件容易的事情。 希望这能有所帮助。如果你不需要图像进行太多的更改或设置动画,那么你应该直接使用图像。不要太担心性能,除非你在一个视图控制器中有100个图像 如果iPhone能够处理诸如速度

我不确定用核心图形绘制我的应用程序的视觉元素而不是提供图像是否有益。在内存保存和运行速度方面,哪种方法更好

如果你不需要图像进行太多的更改或设置动画,那么你应该直接使用图像。不要太担心性能,除非你在一个视图控制器中有100个图像

如果iPhone能够处理诸如速度需求之类的游戏,那么运行带有各种图像的应用程序是一件容易的事情。
希望这能有所帮助。

如果你不需要图像进行太多的更改或设置动画,那么你应该直接使用图像。不要太担心性能,除非你在一个视图控制器中有100个图像

如果iPhone能够处理诸如速度需求之类的游戏,那么运行带有各种图像的应用程序是一件容易的事情。 希望这有帮助

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

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

使用核心图形绘制图像不会对您进行任何缓存,除非您编写代码将图像绘制到上下文中,将上下文另存为位图,缓存位图,然后在以后重新使用。所以每次需要的时候,你都会一遍又一遍地画同样的东西。例如,如果覆盖UIView的
-drawRect:
来绘制图像,则在动画过程中,将对每一帧调用它(每秒60次)。这不必要地消耗了CPU周期和电池寿命

底线是,这取决于你的应用程序是什么,做什么

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

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

使用核心图形绘制图像不会对您进行任何缓存,除非您编写代码将图像绘制到上下文中,将上下文另存为位图,缓存位图,然后在以后重新使用。所以每次需要的时候,你都会一遍又一遍地画同样的东西。例如,如果覆盖UIView的
-drawRect:
来绘制图像,则在动画过程中,将对每一帧调用它(每秒60次)。这不必要地消耗了CPU周期和电池寿命


归根结底,这取决于你的应用程序是什么,做什么。

I如果不进行实际分析,不知道核心图形绘制应该有多复杂,我们怎么能这么说呢?更新详细信息。这个问题已经在这里回答了很多次。好的,谢谢你。我找了一个类似的问题,但没有找到任何。事实上,给定链接中的答案是完美的。但是,我仍然不确定是否使用图像。从我所读到的,CG似乎更快,当你使用简单的图形操作的GPU(没有太多的变化像素等)。但是有一个回答说imageNamed会缓存图像,这对我来说自然更好。所以,我仍然不知道如何继续前进……这就是我所说的,对于一个没有分析的特定案例,你永远不能100%肯定。但我怀疑这会有多大不同。做任何对你来说更容易的事情。我怎么能说,没有实际分析和知道核心图形绘制应该有多复杂?更新详细信息。这个问题已经在这里回答了很多次。好的,谢谢你。我找了一个类似的问题,但没有找到任何。事实上,给定链接中的答案是完美的。但是,我仍然不确定是否使用图像。从我所读到的,CG似乎更快,当你使用简单的图形操作的GPU(没有太多的变化像素等)。但是有一个回答说imageNamed会缓存图像,这对我来说自然更好。所以,我仍然不知道如何继续前进……这就是我所说的,对于一个没有分析的特定案例,你永远不能100%肯定。但我怀疑这会有多大不同。做任何对你来说更容易的事。好吧,这两种方法都有我想要保留的东西。一方面,CG可能更快,更具可定制性和跨平台独立性,而图像通常更易于创建,并由应用程序在内部缓存。我希望保留这两种方法中的一些东西。一方面,CG可能更快、更具定制性和跨平台独立性,而图像通常更易于创建,并由应用程序在内部缓存。感谢Julius,出于性能原因,我将使用这些图像。我不认为缓存上下文会有那么困难,但我认为使用图像似乎是正确的方法。谢谢Julius,我将使用图像,仅仅是因为性能原因。我不认为缓存上下文会是一项很难的任务,但我认为使用图像似乎是正确的方法。