我使用以下命令向UITableView部分标题添加自定义视图:
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
if section == WalletSectionType.content.rawValue,
let walletHeader = tableView.dequeueReusableHeaderFooterView(withIdentifier: self.walletHeaderId) as? WalletHeaderView{
self.walletHeaderView?.rewardsCard.delegate = self
self.walletHeaderView?.walletNavigationView.delegate = self
self.walletHeaderView?.autoresizingMask = .flexibleHeight
return self.walletHeaderView
}
}
当我更改节标题高度时,它只调整节标题的大小,但不会调整我添加到标题中的自定义视图。如果我滚动tableView,它只能正确调整大小。
我如何触发节标题高度更改:
self.tableView?.beginUpdates()
self.tableView?.endUpdates()
触发委托方法
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
var headerHeight :CGFloat = 0.0
switch section {
case 1:
if(self.isRewardsOpen){
headerHeight = 300
} else {
headerHeight = 100
}
default:
break
}
return headerHeight
}
我尝试在layoutIfNeeded
和tableView
上调用walletHeader
,但它没有做任何事情。
修改 我找到的唯一解决方案是再次打电话:
UIView.performWithoutAnimation {
tableView.beginUpdates()
tableView.endUpdates()
}
无论如何,我可以在不再召唤这个的情况下做到这一点吗?