uicollectionview headers 中不同部分的重叠文本

Overlapping text in uicollection view headers for different sections

我为 swift.I 中每个部分的集合视图 headers 添加了不同的文本标签,为 headers 使用 uireusableviews。我的问题是,当我滚动不同部分的标签中的文本时,每个重叠 other.I 尝试在更改文本之前将文本标签设置为“”,但问题仍然存在。

 func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
    if(kind == UICollectionView.elementKindSectionHeader){
       let cell = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "h", for: indexPath) as? UICollectionViewCell
        let txtlab = UILabel()
        txtlab.text = ""
        if(indexPath.section%2 == 0){
            txtlab.text = "Header"}
        else{
            txtlab.text = "another header"
        }
        cell?.addSubview(txtlab)
        txtlab.translatesAutoresizingMaskIntoConstraints = false
        txtlab.centerYAnchor.constraint(equalTo: cell!.centerYAnchor).isActive = true
        txtlab.centerXAnchor.constraint(equalTo: cell!.centerXAnchor).isActive = true
        cell?.backgroundColor = .green
        return cell!
    }

Image of problem faced

您需要在生成新视图之前清除视图。

将创建 header 的方法放在顶部。

for view in myView {
myView.removeFromSuperview()
}

编辑,我没看到你的代码。

您的第一个问题是您要为每个单元格创建一个新标签。您应该创建一个插座,以便每个电池都连接到标签上。然后你应该可以改变 header.