将我的代码库从 Swift 2.2 迁移到 Swift 3.0 后,我注意到我的UITableView
页脚没有显示。事实证明我的都没有UITableViewDelegate
方法被调用(例如:func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView?
).
有趣的是,UITableViewDataSource
正在调用方法并且正在填充表。我已将父视图控制器设置为表的delegate
and dataSource
.
为了说明这个问题,我创建了一个示例 Swift 3.0 项目量身定制以尽可能匹配我现有的代码库。也许 Swift 3/Xcode 8 中发生了一些我不知道的变化,或者我可能遗漏了一些非常明显的东西。感谢您的帮助!
在我检查了您的示例项目后:
你没有做错任何事,但指的是viewForFooterInSection
,直到你实现它才会被调用heightForFooterInSection
方法:
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 50 // for example
}
类似案例:
没有实施heightForHeaderInSection
==> 无需调用viewForHeaderInSection
即使实施了。
返回numberOfRowsInSection
为零 ==> 无需cellForRowAt
即使实施了。
附加说明:你不必添加tableView.dataSource = self
and tableView.delegate = self
in viewDidLoad()
,它们已在界面生成器中设置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)