gpt4 book ai didi

ios - 在运行时重用具有动态布局内容的单元格

转载 作者:行者123 更新时间:2023-11-30 12:32:27 25 4
gpt4 key购买 nike

我有一种 UITableViewCell 类型,允许用户在运行时添加/删除任意数量的 UITextView。

在尝试重用/出列该类型的单元格时,我遇到了问题,因为有时当您上下滚动时,表格 View 单元格就会开始重叠。当我出列/返回单元格时,我正在运行一个设置方法(该方法首先在内部启动一个拆卸方法以删除所有以前的 View ),并使用该模型来设置/恢复所有必要的 View 和布局约束。

 if let cell = tableView.dequeueReusableCell(withIdentifier: "MultipleContentCell", for: indexPath) as? MultipleChoiceTableViewCell {
cell.setupCellWithModel(model: model)
cell.setNeedsUpdateConstraints()
cell.updateConstraintsIfNeeded()
cell.delegate = self

return cell
}

我真的无法弄清楚为什么单元格有时会在表格 View 中重叠,但我猜测这与动态重新创建的布局有关。我正在考虑不重复使用这些类型的单元格,而只是将它们存储在列表中。

我的问题是:可重用单元格是否总是假设具有相同的通用 UIView 布局,并且只有内容发生变化?我不应该重复使用这些类型的细胞吗?或者以前有人经历过这种情况吗?

谢谢

最佳答案

每次将单元格出队时都会创建 UITextView,并且永远不会删除。要修复该问题,请使用函数prepareForReuse()。您必须定义单元格在 MultipleChoiceTableViewCell 中出列之前应执行的操作。例如:

override func prepareForReuse() {
super.prepareForReuse()

for view in speciesName.subviews {
if view is UITableView {
view.removeFromSuperview()
}
}
}

几天前我添加了类似的问题:

Cells in UITableView overlapping. Many cells in one place

如果您有任何疑问,明天我可以尽力为您提供更多帮助。干杯!

关于ios - 在运行时重用具有动态布局内容的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43334294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com