У меня есть простая реализация табличного представления без заголовка. Это результат, к которому я иду.
class NavigationController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
self.pushViewController(MyTable(style: .grouped), animated: false)
}
}
class MyTable: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return CGFloat.leastNormalMagnitude
}
override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return CGFloat.leastNormalMagnitude
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 3
}
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
assert(false)
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
return UITableViewCell()
}
}
![table view with no header](https://i.stack.imgur.com/Vsxj1.png)
Обратите внимание, что у меня есть переопределение для viewForHeaderInSection
, которое никогда не вызывается, что ожидается, так как высота, которую я даю, по существу равна нулю.
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
assert(false)
}
Когда я удаляю определение вышеупомянутой функции, тогда я получаю другой результат. Почему это происходит, и есть ли способ получить тот же результат без переопределения этого метода?
![table view with header](https://i.stack.imgur.com/hScxk.png)