2016-09-10 157 views
0

我已经在该页面上找到了包含该主题的条目,并且还提供了一个提供该问题教程的网站。但没有什么效果很好。预加载tableView单元格并防止重新加载

教程悲伤,我应该加倍我的tableView的高度,以便更早加载细胞,但具有较高的tableView我从来没有达到过的最后一个单元格。

我的问题是,我使用tableView来显示我的应用程序mainpage。这个主页显示每次一个话题,如果它的话题是必要的话,它会显示一个带有地图的单元格,一个带有图片,有时不带。现在的问题,如果我试图滚动到我的看法总是滞后,因为它加载地图或此图片。并再次滚动,因为已加载的单元格已被删除。我使用了tableView,因为可以切换细胞类型(mapCell,pictureCell,textCell)。

我明白了这个功能,因为内存问题,但对我来说它不算多,这将是更好的,如果我的所有细胞中预装,并留在内存中,直到我改变了话题。

是否有swifty的方式来告诉我的tableView有这种行为?

非常感谢和很好的问候

回答

0

声明一个单元格数组。

无论何时只要更改主题,请按照以下步骤操作。

  1. 清除您阵列

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

  3. 返回这些细胞使用行索引数据源的方法。这里不要使用tableview的出队方法。

+0

哦,男孩,我很尴尬!那简单多了!我非常感谢你! – kuemme01

+0

这有效,但它不是内存高效的。更好地预加载模型数据,并仍使用单元出队方法。 –

1

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

有各种各样的第三方框架,为您做所有这些家务。

+0

是的,另一种方法,但我认为它没关系!我有一个30-60 mb之间的记忆或者是那么多? – kuemme01

+0

在较新的设备上,30-60 mb应该不成问题。我们正在谈论多少个表格视图条目,以及这些图像有多大? –

+0

iOS 9运行于4s及以上版本。这是您目前的最低规格设备。 iOS 10将降低4s,并且只能运行在5以上。 –