使用Bitmaps的iPhone性能

时间:2009-07-01 14:59:06

标签: iphone objective-c performance memory-leaks

iPhone / objective-C的新手。

我的应用程序在屏幕上有15-100个小图像(16x16或8x8 PNG)。为了这个例子,假设我可以使用CGContext创建这些图像,如果需要的话。

我不得不假设iPhone使用该方法表现更好而不是加载图像(PNG)。但是,位图版本更容易开发,并且还具有我需要的其他优点(如内置触摸事件)。

如果性能不是此应用程序的最终指标,那么放置100个小图像会降低性能/内存,甚至会考虑切换到CGContext方法。我的直觉告诉我,我不会在任何方面看到那么多的性能差异,但我对iPhone开发来说太新了,不足以了解它有所作为。

3 个答案:

答案 0 :(得分:1)

我认为这取决于图像生成算法的复杂程度。

我还将依赖于您的应用程序:您是否会每秒多次绘制此图像,就像在动画中一样?如果是这种情况,请使用UIImageViews

答案 1 :(得分:1)

我认为使用100左右的UIImageViews应该没问题,只要你不需要快速动画或同时更新它们。您应该避免做任何会改变视图大小的事情(比如调整包含它们的视图的大小),如果使用Core Animation为它们设置动画,则在单个动画块中执行所有动画。 (用一个[UIView beginAnimations:context:],[UIView commitAnimations]包装所有内容 - 不是每个视图都有一个)

祝你好运!

答案 2 :(得分:0)

我首先尝试位图版本,然后尝试CGContext,如果位图太慢。

然后,如果它仍然太慢,我会将所有图标放入GL纹理。