UITableView中的单元格重叠。 许多细胞在一个地方

我试图用随机数字的标签进行表视图。一切工作,直到我试着滚动它。 比许多细胞出现在一个地方。 它看起来像这样:

从模拟屏幕

为了使viewDidLoad()中的随机行高度我把这个:

tableView.estimatedRowHeight = 50.0 tableView.rowHeight = UITableViewAutomaticDimension 

用随机数行写随机数的标签的代码在这里:

 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "HarvestPlan", for: indexPath) as! HarvestPlanCell let currentSpecies = harvestPlan[indexPath.row] var kindLabels = [UILabel]() cell.kindsNamesView.bounds.size.width = 100 for kind in currentSpecies.kinds { let label = UILabel() label.translatesAutoresizingMaskIntoConstraints = false label.numberOfLines = 0 label.text = kind.fullName label.bounds.size.width = 100 label.sizeToFit() label.bounds.size.width = 100 cell.kindsNamesView.addSubview(label) kindLabels.append(label) } var previous: UILabel! for label in kindLabels { label.widthAnchor.constraint(equalToConstant: 100).isActive = true label.heightAnchor.constraint(equalToConstant: label.bounds.height).isActive = true label.leadingAnchor.constraint(equalTo: cell.kindsNamesView.leadingAnchor).isActive = true if previous == nil { label.topAnchor.constraint(equalTo: cell.kindsNamesView.topAnchor).isActive = true } if previous != nil { label.topAnchor.constraint(equalTo: previous.bottomAnchor).isActive = true } if label == kindLabels.last { label.bottomAnchor.constraint(equalTo: cell.kindsNamesView.bottomAnchor).isActive = true } previous = label } return cell 

有人有一些想法如何修复它? 我从一个星期以来一直在寻找答案,我没有find任何关于…

谢谢@ Paulw11,prepareForReuse是我正在寻找的。 如果有人有类似的问题,答案是下面的代码添加到UITableViewCell:

 override func prepareForReuse() { super.prepareForReuse() for view in kindsNames.subviews { //take all subviews from your view view.removeFromSuperview() //delete it from you view } } 

干杯