iOS15中UITableViewCell无数据时Separator分割线消失问题求助
解决方案
该问题是UITableView的默认行为导致:系统默认会在列表无有效数据源时,自动隐藏所有多余分割线,空列表状态下就会出现分割线全部消失的现象,可通过以下方案解决:
- 方法1:设置高度为0的空FooterView
该方案改动最小,可直接强制保留你预设的分割线样式,空列表状态下也不会消失
// Objective-C 写法 self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
// Swift 写法 tableView.tableFooterView = UIView(frame: .zero)
- 方法2:自定义分割线
如果需要更强的样式自定义能力,可以直接关闭系统自带分割线,自己在UITableViewCell的contentView底部添加固定高度的分割线视图,完全自主控制显隐和边距
// 第一步:关闭系统分割线 tableView.separatorStyle = .none
后续在自定义Cell的初始化逻辑中添加分割线视图,调整边距匹配你需要的样式即可
- 方法3:补全边距适配配置
如果是iOS 11及以上版本使用自动布局适配,确保同时设置分割线边距和布局约束开关,避免边距计算异常导致空状态下分割线被隐藏
tableView.separatorInset = UIEdgeInsets(top: 0, left: 15, bottom: 0, right: 0) // 替换为你需要的左右边距 tableView.cellLayoutMarginsFollowReadableWidth = false
内容的提问来源于stack exchange,提问作者towa x
相关产品推荐
相关产品推荐

