我正在以编程方式将UIView放在TableView标头中。
但是,标题视图已被导航控制器栏阻止,并且高度不会变大。
这是我的代码:
let headerView = UIView()
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
headerView.backgroundColor = UIColor(red: 0.000, green: 0.749, blue: 1.000, alpha: 1.00)
headerView.frame = CGRect(x: 0, y: 100, width: view.frame.width, height: 200)
return headerView
}
工作原理:
什么不起作用:
“蓝色”标头未更改其高度。
“蓝色”标头不会再降低了。
答案 0 :(得分:0)
应该是这样!
var headerView = UIView()
headerView.backgroundColor = UIColor(red: 0.000, green: 0.749, blue: 1.000, alpha: 1.00)
headerView.frame = CGRect(x: 0, y: 100, width: view.frame.width, height: 200)
self.tableView.tableHeaderView = headerView // Here goes the UIView for the header
答案 1 :(得分:0)
您可以通过两种方式实现这一目标:
使用viewForHeaderInSection
数据源和heightForHeaderInSection
委托方法。
但是,如果您要使用一个标题,并且不需要“粘性”部分标题功能,则建议使用:
let tableHeaderView = UIView()
override func viewDidLoad() {
super.viewDidLoad()
tableHeaderView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: 200)
tableView.tableHeaderView = tableHeaderView
}
注意:如果您要使用2种方法,则viewForHeaderInSection
在您的情况下是多余的,因此应将其删除。