性能:列表中较小图标的分辨率不同

时间:2012-06-07 14:21:51

标签: iphone objective-c

我正在开发一个iPhone应用程序,滑雪目的地列在UITableView中。表视图最多可包含2000个单元格。每个细胞都有一个25x25px的小天气图标(Retina 50x50)。我已经在每个目的地的详细视图上使用天气图标。这些图标的大小是其两倍:3GS为50x50px,Retina显示为100x100px。

由于UITableView中的渲染png非常耗费内存,我不确定是否应该将更大的图像用于表视图,或者我是否应该只为表视图设计一半大小的图像。当然,这会将应用程序的下载大小增加大约300 KB。

如果最好在应用程序中回收更大的图像,或者最好为所需的每种分辨率设计图像,那么任何人都可以给我一个建议会很好。

提前致谢 马丁

2 个答案:

答案 0 :(得分:0)

你肯定想要使用2张图片。如果使用1张图像,则在非视网膜屏幕上使用更多内存,但在视网膜屏幕上使用相同内存。使用2个图像使用最少的内存。对于你正在做的事情,内存应该没有任何问题,所以我冒昧地说你在需要它们之后将图像保存在内存中,这与表格视图代码无关。

答案 1 :(得分:0)

关于UITableView的一个好处是,它的内存使用量与单元格的大小并不特别相关。你必须跳过的小箍作为数据源,这样表可以回收单元格,保持内存相对于给定单元格的内存使用相对固定。

回收单元为空间换取速度,因此对滚动性能有更合理的关注。这与每个单元的设置工作量有关(因为它们一直在回收和重新设置)。图像尺寸可以是这里的因素,但我不认为你正在考虑的尺度(50 ^ 2或100 ^ 2)。这是通过在真实硬件上运行来调查的最佳方式。

在二进制大小上,我认为你是正确的,单个版本的图像会减少应用下载。它可能不是300k的成败因素,而是考虑它的荣誉。