预加载tableView单元格并防止重新加载

时间:2016-09-10 12:17:18

标签: ios swift uitableview tableviewcell preload

我已经在此页面上找到了包含该主题的条目,还有一个提供该问题教程的网站。但没有什么效果很好。

教程很遗憾我应该将tableView的高度加倍,以便先前加载的单元格,但是使用更高的tableView,我从未到达最后一个单元格。

我的问题是,我使用tableView来显示我的应用主页。这个主页每次显示一个主题,如果它对于该主题是必要的,它显示例如带有地图的单元格,一个带有图片的单元格,有时没有。问题现在,如果我试图滚动到我的视图它总是滞后,因为它加载地图或这些图片。并再次向后滚动,因为已加载的单元格已被删除。我使用了tableView,因为有可能打开和关闭celltypes(mapCell,pictureCell,textCell)。

我理解这个功能,因为内存问题,但在我的情况下它并没有那么多,如果我的所有单元格都被预加载并保留在内存中直到我更改主题会更好。

有没有一种方法告诉我的tableView有这种行为?

非常感谢并致以亲切的问候

2 个答案:

答案 0 :(得分:1)

我建议采用不同的方法。设置表视图控制器以在单元格中安装占位符图像,触发缓存到磁盘的异步下载,然后在下载完成后仍然可见的情况下使用下载的内容更新单元格。

有各种第三方框架可以为您完成所有这些内务管理。

答案 1 :(得分:0)

声明一个单元格数组。

每当更改主题时,请按照以下步骤操作。

  1. 清除阵列

  2. 创建并配置添加到阵列的所有单元格。

  3. 使用行索引将这些单元格返回到数据源方法。不要在这里使用tableview dequeue方法。