Swift 3,XCode 8.3
动态原型细胞。视图(类CustomTableViewController: UITableViewController
)位于一个单独的故事板中,该故事板是从另一个故事板引用的,其中包含来自表的segue,该表本身嵌入在Nav Controller中。
实施以下方法:
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat
override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat
override func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView?
override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int)
如果我在navcontroller中嵌入了viewcontroller,则会调用viewForFooterInSection
并显示视图。仍未调用willDisplayHeaderView
。 编辑:它没有嵌入它是将我的CustomTableViewController设置为初始视图控制器。当Nav Controller是IVC时,则调用viewForFooterInSection,当CustomTableViewController(嵌入在Nav Controller中)是IVC时,不会调用viewForFooterInSection。
如果我将表格更改为静态单元格,则会调用willDisplayHeaderView
并调用viewForFooterInSection
,但仅当视图嵌入到Nav控制器中时才会再次调用。
嵌入另一个Nav Controller有副作用,我试图避免,但无论如何willDisplayHeaderView
都没有被调用。
答案 0 :(得分:0)
你忘记了这些代表:
override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 100
}
override func tableView(_ tableView: UITableView, estimatedHeightForFooterInSection section: Int) -> CGFloat {
return 100
}
标题相同。快乐的编码!
答案 1 :(得分:0)
添加
的委托方法如果您在Viewcontroller中使用表,则检查Delegate和数据源是否已分配给表。
答案 2 :(得分:0)
您可以实现以下表格视图方法
extension DemoViewController: UITableViewDelegate {
//setting header height to 100
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 100
}
//setting footer height to 100
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 100
}
//setting header view
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let headerView = UIView(frame: CGRect(x:0, y:0, width: tableView.frame.size.width, height: 50))
headerView.backgroundColor = UIColor.red
return headerView
}
//setting footer view
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let footerView = UIView(frame: CGRect(x:0, y:0, width: tableView.frame.size.width, height: 50))
footerView.backgroundColor = UIColor.green
return footerView
}
func tableView(_ tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) {
//customization for footer goes here
}
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
//customization for header goes here
}
}