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

iOS 15如何移除UITableView section header与首个cell的分隔线

问题原因

该额外分隔线是iOS15系统UITableView新增默认配置导致的:系统为UITableView新增了sectionHeaderTopPadding属性默认值非0,同时会主动渲染首个Cell的顶部分隔线,最终呈现出header与第一个Cell之间多了一条分隔线的效果。

解决方案

可根据业务场景选择以下任意一种方案实现:

  • 方案1:使用iOS15新增API直接适配(最简方案)
    直接将新增的顶部padding属性设为0即可同时移除多余间距和额外分隔线:
    // Objective-C实现
    if (@available(iOS 15.0, *)) {
        tableView.sectionHeaderTopPadding = 0;
    }
    
    // Swift实现
    if #available(iOS 15.0, *) {
        tableView.sectionHeaderTopPadding = 0
    }
    
  • 方案2:仅隐藏首个Cell的顶部分隔线
    如果你需要保留默认的header顶部间距,仅隐藏多余分隔线,可以在Cell展示代理中单独调整第一行Cell的分隔线内边距:
    func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        if indexPath.row == 0 {
            // 将分隔线左内边距设为屏幕宽度,使其移出可视区域
            cell.separatorInset = UIEdgeInsets(top: 0, left: UIScreen.main.bounds.width, bottom: 0, right: 0)
        } else {
            // 其余行恢复自定义的全局分隔线内边距
            cell.separatorInset = tableView.separatorInset
        }
    }
    
  • 方案3:全自定义分隔线(规避系统版本差异)
    直接关闭系统自带的分隔线,自主实现分隔线逻辑,不受系统版本更新影响:
    // 关闭系统分隔线
    tableView.separatorStyle = .none
    
    之后在自定义Cell的布局代码中添加高度为0.5pt的底部视图作为自定义分隔线即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:09:02