开发的过程中,经常使用UITableView的tableHeaderView视图,对于固定高度的tableHeaderView,我们使用非常简单。创建一个自定义视图,计算好固定高度即可。如果要动态更新tableHeaderView的高度,仅仅是将自定义的view进行计算高度,有时候我们会发现tableHeaderView高度还是原来的高度,没有发生变化,在是显示的内容变多之后,会有部分内容看不到。那么一起来看看如何处理?
实现功能:
1)自定义一个UIView,包含两个UILabel,使用SnapKit进行布局
2) 默认动态计算内容高度,点击导航栏上的segmentControl进行增加和减少内容,进一步更新tableHeaderView的高度。
实现代码:
自定义视图部分
import UIKit
import SnapKit
class CustomHeaderView: UIView {
lazy var content: UILabel = {
let label = UILabel()
label.numberOfLines = 0
return label
}()
lazy var info: UILabel = {
let label = UILabel()
label.numberOfLines = 0
return label
}()
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setupUI() {
backgroundColor = UIColor.gray
addSubview(content)
addSubview(info)
addConstraints()
}
func addConstraints() {
conten