我正在尝试将一个视图添加到tableview作为tableHeaderView。我从界面构建器拖动一个视图并将其放入我的tableview中。标题的大小很小,所以我通过编码调整大小。当我运行我的应用程序时,它变成这样:
以下是我更改tableview标题大小的代码:
self.myTableView.tableHeaderView?.frame = CGRectMake(0, 0, screenWidth, 290)
有任何建议可以解决它!
答案 0 :(得分:0)
创建一个xib,其中包含您要在header view
上添加TableView
的{{1}}种类。然后使用viewWillAppear
方法在controller
的{{1}}方法中加载xib。现在,使用[[NSBundle mainBundle]loadNibNamed:@""]
NSBundle
返回的视图添加为tableView
标题
答案 1 :(得分:0)
使用此UItableView扩展。
我遇到了同样的问题
extension UITableView {
func setTableHeaderView(headerView: UIView?) {
// set the headerView
tableHeaderView = headerView
// check if the passed view is nil
guard let headerView = headerView else { return }
// check if the tableHeaderView superview view is nil just to avoid
// to use the force unwrapping later. In case it fail something really
// wrong happened
guard let tableHeaderViewSuperview = tableHeaderView?.superview else {
assertionFailure("This should not be reached!")
return
}
// force updated layout
headerView.setNeedsLayout()
headerView.layoutIfNeeded()
// set tableHeaderView width
tableHeaderViewSuperview.addConstraint(headerView.widthAnchor.constraint(equalTo: tableHeaderViewSuperview.widthAnchor, multiplier: 1.0))
// set tableHeaderView height
let height = headerView.systemLayoutSizeFitting(UILayoutFittingCompressedSize).height
tableHeaderViewSuperview.addConstraint(headerView.heightAnchor.constraint(equalToConstant: height))
}
}