viewForFooterInSection没有使用reloadData调用最后一节

时间:2017-09-08 10:16:16

标签: ios swift uitableview ios-autolayout

我想使用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
        }

1 个答案:

答案 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#>)