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

Preload tableView cells and prevent reloading

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

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

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

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

有什么快捷的方法可以告诉我的 tableView 有这种行为吗?

非常感谢和美好的问候

声明一个元胞数组。

每当您的主题发生变化时,请按照这些步骤进行操作。

  1. 清除你的数组

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

  3. Return 这些单元格使用行索引作为数据源方法。不要在这里使用tableview dequeue方法。

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

有各种第三方框架可以为您完成所有这些工作。