不同部分的集合视图标题中的重叠文本
Posted
技术标签:
【中文标题】不同部分的集合视图标题中的重叠文本【英文标题】:Overlapping text in uicollection view headers for different sections 【发布时间】:2020-07-08 17:38:08 【问题描述】:我在 swift 中为每个部分的 collectionview 标题添加了不同的文本标签。我使用 uireusableviews 作为标题。我的问题是当我滚动不同部分标签中的文本相互重叠时。我尝试在更改文本之前将文本标签设置为“”,但问题仍然存在。
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
【问题讨论】:
【参考方案1】:您需要在生成新视图之前清除视图。
将创建标题的方法放在顶部。
for view in myView
myView.removeFromSuperview()
编辑,我没有看到你的代码。
您的第一个问题是您要为每个单元格创建一个新标签。您应该创建一个插座,以便每个单元格都连接到标签。然后你应该可以更改标题。
【讨论】:
以上是关于不同部分的集合视图标题中的重叠文本的主要内容,如果未能解决你的问题,请参考以下文章
如何使用自定义 UICollectionReusableView 作为集合视图的部分标题?