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.
我为 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.