Swift 将页脚视图添加到tableView最干净的方法是什么?
我想知道,向tableview添加页脚的最干净、最简单的方法是什么 现在我做一个硬编码:Swift 将页脚视图添加到tableView最干净的方法是什么?,swift,uitableview,Swift,Uitableview,我想知道,向tableview添加页脚的最干净、最简单的方法是什么 现在我做一个硬编码: func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { if viewModel.shouldShowPremiumBanner { let footerView: LibraryFooterView = tableView
func tableView(_ tableView: UITableView,
viewForFooterInSection section: Int) -> UIView? {
if viewModel.shouldShowPremiumBanner {
let footerView: LibraryFooterView = tableView.dequeueReusableHeaderFooter()
footerView.viewModel = LibraryFooterViewModel(navigator: Locator.navigator,
localStorage: Locator.localStorage)
self.tableView.tableFooterView = footerView
return footerView
}
return nil
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
if viewModel.shouldShowPremiumBanner {
return estimatedSectionFooterHeight
}
return .leastNormalMagnitude
}
我想将其添加到tableview,而不是第节中 您已经通过设置self.tableView.tableFooterView=footerView 根据文件 使用此属性可以为整个表指定页脚视图。这个 页脚视图是表视图滚动中显示的最后一项 内容,并且它与您添加到的页脚视图是分开的 个别章节。此属性的默认值为零 链接: 因此,只需删除viewController的
viewForFooterInSection
code和viewDidLoad
,即可简单设置
override func viewDidLoad() {
super.viewDidLoad()
let footerView: LibraryFooterView = tableView.dequeueReusableHeaderFooter()
footerView.viewModel = LibraryFooterViewModel(navigator: Locator.navigator,
localStorage: Locator.localStorage)
self.tableView.tableFooterView = footerView
}
通过在viewforfooterInstitution
中写入self.tableView.tableFooterView=footerView
,您只是一次又一次地重置同一变量,而没有实际的视觉变化,而且您只是一次又一次地创建视图及其视图模型,浪费了CPU周期。设置一次可以在viewDidLoad
中,也可以在任何对您的情况有意义的地方设置一次,然后离开它
希望对您有所帮助以上代码的哪一部分有问题?如果
viewModel.shouldShowPremiumBanner
为真,您将返回所有节的页脚视图,但我相信这是您的要求,除此之外,我看不到任何问题我希望将此添加到不在节中的tableview