gpt4 book ai didi

swift - UICollectionView 的 Header 高度取决于 Swift 中的内容

转载 作者:行者123 更新时间:2023-11-30 12:19:12 27 4
gpt4 key购买 nike

UICollectionView内,我在UILabel内有一个HeaderViewnumberOfLines 设置为零,以根据其文本更改标签的高度。我希望标题的高度取决于标签的框架

PS。UICollectionView 中的 HeaderView 并不像普通 View 甚至 UITableViewCell 那样简单。与 UICollectionReusableView 不同,此功能非常容易使用。

最佳答案

使用此函数查找标签的高度:-

func labelHeight(width:CGFloat , font:UIFont , text:String)->CGFloat{
let label:UILabel = UILabel.init(frame: CGRect.init(x: 0, y: 0, width: width, height: CGFloat.greatestFiniteMagnitude))
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.byWordWrapping
label.font = font
label.text = text
label.sizeToFit()
return label.frame.height
}

将此 UICollectionViewDelegateFlowLayout 方法添加到您的 Controller 中,并在此处找到高度和返回 header 大小

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize{
let height = labelHeight(width: collectionView.bounds.width, font:pass the labelFont here , text:"Pass label text here")

return CGSize(width:collectionView.bounds.width , height: height + 10)
}

关于swift - UICollectionView 的 Header 高度取决于 Swift 中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45005620/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com