如上图所示的界面,UIlabel 的文字事动态的,红色线以上的view是tableview的headerView(不是sectionHeader),如果每次都根据文字手动计算文字高度,在更改headerview的高度的话,好想很麻烦,也不是特别准确,网上找了好久都没有找到这方面的方法,于是自己反复尝试,最终实现了tableHeaderView的autoLayout。步骤如下:
1、首先xib拖了一view
将上下左右的约束设置好,就和cell的self sizing 那样
2、代码里面添加headerView
///初始化header
let header = Bundle.main.loadNibNamed("QYMineHomeHeaderView", owner: nil, options: nil)?[0] as? QYMineHomeHeaderView
///给tableview添加header
mineHomeTableView.tableHeaderView = header!
///设置top和width的约束 header?.snp.makeConstraints({ (make) in
make.top.equalTo(0)
make.width.equalTo(screen_w)
})
///更新约束
mineHomeTableView.layoutIfNeeded()
以上就是给tableview的tableHeaderview 设置 autolayout的全过程,分享给大家,apple的autoLayout真的很方便,省去了大量的计算高度的过程,大家一定要多多使用!