问题描述
我目前正在使用带有可重用单元格的 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()
这将为每次请求一个单元格分配一个新的单元格对象。