为什么将子视图添加到TableViewCell多次



我想在tableViewcell中添加自定义子视图。基本上,每次我单击单元格内的图像时。它将在其上显示带有标签的自定义子视图。我项目的链接在这里

问题是我单击特定的单元格(0)时。它显示(0)值,但也显示了IndexPath#2上的(0)值。当我单击单元格(1)时,也将在Indexpath#3上显示(1)值。图案通过(0-2)和(1-3)

进行

我听说人们建议使用Preparforreuse方法,但到目前为止没有运气。

我欢迎任何想法和帮助。谢谢。

您需要将其清除,因为它们被取消

let subview = TagBox(frame: CGRect(x: self.view.frame.width/2, y: self.view.frame.height/2, width: 100, height: 30), boxName: label)
subview.backgroundColor = UIColor.black
subview.tag = 120

cell.contentView.subviews.forEach {
    if $0.tag == 120 { 
        $0.removeFromSuperview()
    } 
}

或在单元格内部

override func prepareForReuse() {
    super.prepareForReuse()
    self.contentView.subviews.forEach {
        if $0.tag == 120 {
            $0.removeFromSuperview()
        }
    }
}

最新更新