iPhone - UITableView在滚动时重新加载

时间:2011-08-08 11:09:19

标签: iphone performance uitableview optimization memory

我有一个UITableView,每个UITableViewCell都会显示一个从互联网上获取的唯一UIImage。当我们滚动UITableView时,将重新创建单元格,并且每次都会调用tableView: cellForRowAtIndexPath:来配置单元格。因此,它一次又一次地从互联网上加载UIImages并且滚动不顺畅。

我现在找到的解决方案是在NSMutableArray上创建所有UIImages的{​​{1}},然后将图片从ViewDidLoad加载到UITableViewCells肯定能让我顺利滚动。

我对自己的解决方案的关注是,当我将所有NSMutableArray保留在UIImages中并且所有对象都在应用程序运行时保留在内存中时,我很可能无法有效地使用内存

有没有更好,更有效的方法来实现这一点,这使我能够顺利滚动以及最佳内存使用?

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

将下载的图像缓存在文件系统上。加载单元格时,首先确保相关图像的缓存副本可用,然后使用[UIImage imageWithContentsOfFile:]加载它。

答案 2 :(得分:0)

  1. 您应该使用图像链接数组而不是图像。
  2. 您应该异步加载图像,以便提高创建UITableviewCell的性能。
  3. 确认您使用的是 dequeueReusableCellWithIithntifier ,它会为您提供更顺畅的滚动。