UITableView 的 tableHeaderView坑
2017-12-05 本文已影响15人
爆炸的白菜君
在使用Xib写一个tableView的tableHeaderView的时候,遇到一个坑,而且这个坑在6Plus上面不显示,在5s和8上面就会出来。
具体的样子就是tableHeaderView的高度被压缩,然后在Xib里面的约束被报奇怪的错误。
具体的结局办法是:
将Xib外面套一层UIView
懒加载一个header
fileprivate lazy var header:OrderSettleHeader? = {
let hed = Bundle.main.loadNibNamed(OrderSettleHeaderId, owner: nil, options: nil)?.last as? OrderSettleHeader
hed?.frame = CGRect(x: 0, y: 0, width: ScreenWidth, height: 170.0)
return hed
}()
TableView的基本配置
private func configerTableView() {
tableView.register(UINib(nibName: OrderSettleCellId, bundle: nil), forCellReuseIdentifier: OrderSettleCellId)
tableView.delegate = self
tableView.dataSource = self
let headerContainer = UIView.init(frame: CGRect(x: 0, y: 0, width: ScreenWidth, height: 170.0))
guard let header = header else {
return
}
headerContainer.addSubview(header)
tableView.tableHeaderView = headerContainer
header.financialSettlement = model
}
手敲一个headerContainer,代码设置frame,然后将Xib的header添加到这个headerContainer上面。最终将 tableView 的 tableHeaderView 设置成这个headerContainer
完美解决!