最后一个单元格必须占用tableView中剩余的所有剩余空间

时间:2016-11-08 07:32:32

标签: ios uitableview swift3

我希望我的最后一个单元格占用tableview中剩余的所有剩余空间。所以我写了这段代码:

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
    if indexPath.row == tableView.numberOfRows(inSection: 0) - 1 {
        let sectionheight: CGRect = tableView.rect(forSection: 0)
        let tableViewFrame: CGRect = tableView.frame
        let height: CGFloat = tableViewFrame.size.height - (sectionheight.size.height - 100)


        cell.frame.size.height = height
        cell.layoutIfNeeded()
    }
}

并且在该单元格的heightForRow中,我返回的值只有100。

问题是计算的高度是正确的,但单元格没有变化。

如何确保细胞高度发生变化?

1 个答案:

答案 0 :(得分:1)

您应该在heightForRow而不是willDisplayCell中进行高度计算,您还可以先在willDisplayCell中保存一些属性,然后拨打tableView.beginUpdateendUpdate强制重新计算单元格高度

单元格没有变化,因为tableview处理单元格高度,而不是单元格,单元格只控制它的内容高度