1

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

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

如果最好在应用程序中回收较大的图像,或者最好为所需的每种分辨率设计图像,如果有人能给我一个建议,那就太好了。

在此先感谢马丁

4

2 回答 2

0

UITableView 的一个好处是它的内存使用与单元格的大小没有特别的关系。当数据源存在时,您必须跳过一些小圈,以便表可以回收单元格,从而使内存相对于给定单元格的内存使用情况保持相对固定。

回收单元以速度换取空间,因此对滚动性能有更合理的担忧。这与每个单元的设置工作量有关(因为它们一直在被回收和重新设置)。图像大小在这里可能是一个因素,但我认为在您考虑的比例(50 ^ 2 或 100 ^ 2)上不是这样。这是最好通过在真实硬件上运行来研究的事情。

关于二进制大小,我认为您是正确的,单个版本的图像会减少应用程序的下载。这可能不是 300k 的成败因素,但考虑到它是值得称赞的。

于 2012-06-07T15:00:42.190 回答
0

您肯定想使用 2 张图片。如果您使用 1 张图像,则在非视网膜屏幕上使用更多内存,但在视网膜屏幕上使用相同。使用 2 张图像使用的内存最少。无论您在做什么,内存都应该没有问题,所以我敢说您在需要图像后将图像保存在内存中,这与表格视图代码无关。

于 2012-06-07T14:42:02.347 回答