为什么将subView添加到tableViewCell会被多次添加?

时间:2019-02-19 15:55:57

标签: ios swift uitableview addsubview

我想在tableViewCell内添加自定义subView。基本上每次我单击单元格内的图像时。它将显示带有标签的自定义subView。我项目的链接是here

问题是,例如,当我单击特定的单元格(0)时。它显示(0)值,但同时在indexPath#2上显示(0)值。当我单击单元格(1)时也是如此,它还将在indexPath#3上显示(1)值。模式变为(0-2)和(1-3)

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

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

1 个答案:

答案 0 :(得分:0)

您需要ro清除已退格的单元格

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()
        }
    }
}