我将自定义UIView
用作tableheaderView
并具有以下约束。
我使用RXSwift以下列方式设置tableHeader
:
viewModel.header.subscribe(onNext: { headerViewModel in
let headerView = AttractionDetailHeaderView.grabFromNib()
headerView.delegate = self
headerView.setViewModel(viewModel: headerViewModel)
self.tableView.tableHeaderView = headerView
self.sizeHeaderToFit()
headerView.setNeedsLayout()
}).addDisposableTo(disposeBag)
您看到我使用sizeHeaderToFit
方法来调整headerView
:
func sizeHeaderToFit() {
let headerView = tableView.tableHeaderView!
let footerView = tableView.tableFooterView!
let height = headerView.systemLayoutSizeFitting(UILayoutFittingCompressedSize).height
var headerFrame = headerView.frame
headerFrame.size.height = height
headerView.frame = headerFrame
var footerFrame = footerView.frame
footerFrame.size.height = 40
footerView.frame = footerFrame
tableView.tableHeaderView = headerView
tableView.tableFooterView = footerView
}
但我的tableview
标题的高度永远不正确。
有人可以帮忙吗?