动态更改uitableview页脚

时间:2016-03-20 15:02:04

标签: ios uitableview ios-autolayout uitableviewsectionheader

我有一个自定义的UITableViewCell,我将其用作UITableView的页脚。

func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
    let cell = tableView.dequeueReusableCellWithIdentifier("footerCommentCell") as! FooterCommentTableViewCell
    cell.footerIndex = section
    cell.delegate = self
    return cell
}

这个页脚有自动布局 http://joxi.ru/DrloGbpC4Eb3vA 1 - 视图1 2 - 观点2 3 - 查看2个高度约束(view2Height

在初始阶段view2Height为0,对于某些操作,我想将此约束常量更改为另一个值,例如 - 50,并将我的标题更改为。

有没有办法实现这个?

4 个答案:

答案 0 :(得分:0)

您可以覆盖heightForFooterInSection并根据需求和重新加载表部分返回0或50。

override func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {

        //return value based on condition 
    }

答案 1 :(得分:0)

这很容易。当你说动态时,意味着你需要一些条件来改变它。 例如: 子类化两个UITableviewCells,然后重新加载表视图。

答案 2 :(得分:0)

添加到@ 2ank3th答案,您可以获取页脚的单元格/视图。

func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    let footerView = tableView.footerViewForSection(0) as! FooterCommentTableViewCell 
// Your section number. (0 for understanding purpose)

// Then you can modify the height constraint and return the height of footer here.

}

答案 3 :(得分:0)

func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat 
{
    return UITableViewAutomaticDimension
}

func tableView(tableView: UITableView, estimatedHeightForFooterInSection section: Int) -> CGFloat
{
    return 44.0
}