Tableview,如何禁用可重用单元? 用于测试目的

问题描述

我目前正在使用带有可重用单元格的 tableview,但我想禁用它(我知道人们不推荐这个,但我想看看性能差异)。我已尝试搜索正确的代码,但这些示例对我不起作用。

如果有人能指出我正确的方向,我们将不胜感激。

基本上我不希望单元格可重复使用,我希望图像/名称存储在内存中。

func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
       let cell = Tableview.dequeueReusableCell(withIdentifier: "cell",for: indexPath) as! SökrutaCell


        cell.Söknamn.text = sökresultat[indexPath.row].displayname
        cell.Sökbild.image = UIImage(systemName: "eye.slash")


    return cell
    }

解决方法

如果您想存储图像和名称 - 您必须构建单独的缓存逻辑来为您执行此操作。 禁用出队绝对不是要走的路。

您将缓存保存在不同结构的外部某个地方,然后从 func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) 中的那个地方提取数据。

如果您真的非常想这样做 - 只需获取一个 UITableViewCell 数组,而不是 dequeueReusableCell 简单地手动初始化单元格 - 然后将其保存在一个数组中。

但是由于许多不同的原因,这是错误的......不要走这条路 - 正确地做并在视图逻辑之外构建缓存逻辑。

,

要禁用单元格重用,可以替换此行

let cell = Tableview.dequeueReusableCell(withIdentifier: "cell",for: indexPath) as! SökrutaCell

有了这个

let cell = SökrutaCell()

这将为每次请求一个单元格分配一个新的单元格对象。