Self Sizing Table View Cell未自动调整:Stack View内容压缩求助
解决Self Sizing Table View Cell内容被压缩的实用方案
调整Stack View核心布局属性
- 将Stack View的Distribution从
Fill Proportionally改为Fill或Fill Equally(按需选择):Fill Proportionally会按子视图的固有尺寸比例分配空间,极易导致文本类视图被不合理压缩。 - 对齐方式设置匹配布局方向:垂直Stack View设
Alignment为Top,水平Stack View设为Leading,让子视图从起始端开始布局,避免被强制拉伸挤压。 - 补全Stack View约束:确保Stack View与cell的contentView之间的上下左右约束完整(例如四边设为0或留指定边距),缺失约束会导致布局计算失效。
配置子视图的优先级参数
- 文本类视图(UILabel、UITextView):将Content Hugging Priority(内容拥抱优先级)和Content Compression Resistance Priority(内容抗压缩优先级)都设为较高值(如751),优先保证自身内容不被压缩。
- 固定尺寸视图(如UIImageView):给它设置明确的宽高约束,或降低其优先级,避免抢占文本视图的布局空间。
校验Table View相关设置
- 确认
tableView.rowHeight = UITableView.automaticDimension和tableView.estimatedRowHeight = 95已正确配置,且未在代理方法tableView(_:heightForRowAt:)中返回固定高度——该方法会直接覆盖自动高度逻辑。
额外细节检查
- 确保cell的contentView的
translatesAutoresizingMaskIntoConstraints设为false,避免系统自动生成的约束干扰自定义布局。 - 多行文本UILabel需设置
numberOfLines = 0,让文本自动换行,保证其固有尺寸能正确计算高度。
内容的提问来源于stack exchange,提问作者jerfin
相关产品推荐
相关产品推荐

