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

TableView自定义单元格出现5个内容挤在一行的问题排查求助

问题分析与解决办法

嘿,我帮你捋捋这个问题——5个自定义单元格挤在同一行,大概率是TableView没正确设置行高导致的,下面是几个最常见的原因和对应的解决思路:

1. 没实现行高代理方法

你只改了单元格的默认尺寸,但TableView默认会用系统默认行高(一般是44pt),如果你的自定义单元格实际高度比这个大,但没告诉TableView每行该用多少高度,就会出现内容挤压重叠的情况。

解决办法:补上heightForRowAt代理方法,返回你自定义单元格的实际高度:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    // 把这里的数值换成你设置的单元格高度,比如100pt
    return 100
}

2. 用Auto Layout但没开自动行高

如果你的theoryTVC是用Auto Layout来布局内部控件的,那你可以让TableView自动计算行高,这样更灵活:

  • 先确保单元格内的约束是完整的(从顶部到底部有连续的约束链,让系统能算出整体高度)
  • 然后在TableView的初始化代码里加上这两句:
tableView.rowHeight = UITableView.automaticDimension
tableView.estimatedRowHeight = 100 // 设置一个预估高度,帮TableView优化滚动性能

3. 自定义单元格里的frame设置出错

检查下你写的theoryTVC类,有没有在awakeFromNib或者layoutSubviews里不小心把单元格的高度改得特别小,导致内容挤在一起。

4. TableView本身的布局或样式有问题

确认下你的TableView是默认的plain样式,要是改成grouped了,看看有没有设置错误的section inset;另外检查TableView的约束是否正确,有没有被其他控件压缩到一个很小的高度里,导致所有行只能挤在一起显示。


内容的提问来源于stack exchange,提问作者J.Doe2

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:17:42