You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让UITableView的最后一行占满表格剩余未占用空间

实现方案

核心逻辑

根据不同行号分别设置高度即可:

  • 第一行返回固定高度150
  • 第二行返回TableView总高度减去第一行高度,就能占满剩余可用空间。如果存在表格头、分区头、contentInset内边距等元素,计算时同步减去对应高度即可

代码实现

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    if indexPath.row == 0 {
        // 第一行固定高度
        return 150
    } else if indexPath.row == 1 {
        // 第二行占满剩余空间,无额外元素时直接计算即可
        return tableView.bounds.height - 150
        // 若存在内边距等特殊配置,可调整为下方写法:
        // return tableView.bounds.height - tableView.contentInset.top - tableView.contentInset.bottom - 150
    }
    // 其他行按需求返回对应高度即可
    return UITableView.automaticDimension
}

注意事项

  • 如果TableView的高度会动态变化(比如横竖屏切换、父视图尺寸调整),尺寸变化后需要调用tableView.reloadData()刷新行高
  • 如果存在分区头/尾、表格头/尾视图,计算剩余高度时要减去对应视图的高度,避免第二行超出可视范围触发滚动

内容的提问来源于stack exchange,提问作者CuriousMan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 18:39:01