我想使用reloadData刷新部分页脚,但是现在所有部分都会更新,除了最后一部分 - 即使页脚可见,也不会调用viewForFooterInSection。滚动视图是为最后一节调用viewForFooterInSection的唯一方法。这种行为可能是什么原因?我正在使用Autolayout。
编辑:实现了heightForFooterInSection以支持不同的页脚高度,但是应该只返回AutomaticDimension并且逻辑应该去其他地方?
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
switch(tableView) {
case self.firstTableView:
let item = self.firstItems[section]
let shouldShowFirstButton = myModel.hasActions(item)
let shouldShowSecondButton = myModel.hasOtherActions(item)
if shouldShowFirstButton && shouldShowSecondButton {
return FirstFooterView.heightForTwoButtons()
} else if shouldShowFirstButton ||shouldShowSecondButton{
return FirstFooterView.heightForOneButton()
} else {
return OtherFooterView.height()
}
case self.secondTableView:
return 0.0
case self.thirdTableView:
if self.state1 {
return 70.0
} else if selectedItem == nil {
return 0.0
}else{
return 0.0
}
default:
DDLogInfo("height 0 for section \(section)")
return 1.0
}
答案 0 :(得分:0)
UiView.setAnimationsEnabled(False)
self.TableView.reloadSections(NSIndexSet(index: yoursection),
withRowAnimation: UITableViewRowAnimation.None)
self.TableView.scrollToRowAtIndexPath(NSIndexPath(forRow: 0, inSection: 5),
atScrollPosition: UITableViewScrollPosition.Bottom, animated: false)
UIView.setAnimationsEnabled(true)
使用此功能,您可以重新加载要重新加载的特定部分。希望它有所帮助
编辑:如果要滚动到特定位置
self.TableView.scrollRectToVisible(<#T##rect: CGRect##CGRect#>, animated: <#T##Bool#>)