【问题标题】:iPhone - UITableView reload on scrollingiPhone - UITableView 在滚动时重新加载
【发布时间】:2011-10-22 07:31:31
【问题描述】:

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

我现在为自己找到的解决方案是在ViewDidLoad 上创建所有UIImagesNSMutableArray,然后从NSMutableArray 将图像加载到UITableViewCells,这肯定会让我平滑滚动。

我对自己的解决方案的担忧是,当我将所有 UIImages 保留在 NSMutableArray 中并且所有对象都保留在内存中时,只要应用程序运行,我很可能会低效地使用内存。

有没有更好、更有效的方法来做到这一点,让我可以平滑滚动并获得最佳内存使用?

【问题讨论】:

    标签: iphone performance uitableview optimization memory


    【解决方案1】:

    【讨论】:

    • 感谢您的链接...很有帮助
    【解决方案2】:

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

    【讨论】:

    • 谢谢...如何在文件系统上缓存图像?你能提供API的链接吗?或者如果可以解释怎么做,请解释..
    • @Atif:使用NSData 下载并写入“磁盘”。有关详细信息,请参阅here
    【解决方案3】:
    1. 您应该使用图片链接数组而不是图片。
    2. 您应该异步加载图像,以提高创建 UITableviewCell 的性能。
    3. 确认您正在使用 dequeueReusableCellWithIdentifier,它会为您提供更流畅的滚动。

    【讨论】:

      猜你喜欢
      • 2014-08-06
      • 1970-01-01
      • 1970-01-01
      • 2016-10-03
      • 2014-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多