【发布时间】:2018-02-23 17:38:38
【问题描述】:
我目前正在使用 UICollectionView 构建通用表单构建器。
每个表单元素都是一个单元格,对于复选框,我在单元格内使用 UIStackView 来显示所有可用选项。
问题是每次我重用单元格时,即使我删除了所有的排列子视图,它们也会与新的视图一起留在视图中。
以下代码是我正在做的简化版本:
class cell: UICollectionViewCell {
@IBOutlet weak var stackView: UIStackView!
func setup(options: [String]) {
for option in options {
let label = UILabel()
label.text = option
stackView.addArrangedSubview(label)
}
}
override func prepareForReuse() {
super.prepareForReuse()
optionsStackView.arrangedSubviews.forEach({ optionsStackView.removeArrangedSubview(view: $0) })
}
}
与此相反,我当前的解决方法是在 prepareForReuse() 中隐藏()每个排列的子视图,而不是删除它们,但我不喜欢这样。
【问题讨论】:
标签: ios swift tableview collectionview stackview