向TableView Cell中添加ImageView后出现布局约束错误求助
TableView Cell 添加ImageView后布局错误的排查与解决方法
- 先理清楚视图层级:直接把ImageView加到Cell的contentView上,和带两个标签的StackView同级,别嵌套错层级——很多时候布局乱就是因为视图放错地方了。
- 约束要给得精准:
- 给ImageView设固定宽高(比如
width=40、height=40),自动布局没法猜你要的图片尺寸,固定死就不会乱 - 把ImageView的左边、上下边和contentView连起来:左间距设16,上下边设>=12的约束,这样Cell高度变化时图片能保持在垂直居中区域
- StackView的左边连到ImageView的右边,留12的间距;然后StackView的右边、上下边和contentView连,右边设<=16,上下边同样>=12。另外给StackView的水平内容 hugging priority设得比ImageView低,保证Cell空间不够时,StackView会被压缩而ImageView保持尺寸
- 给ImageView设固定宽高(比如
- 检查Cell的自动布局开关:把TableView的
rowHeight设成UITableView.automaticDimension,estimatedRowHeight给个80左右的预估高度,让Cell能根据内容自动计算高度 - 揪出冲突约束:打开Xcode的Debug View Hierarchy,看红色的冲突提示,删掉重复或者矛盾的约束;也可以看控制台的约束冲突日志,直接定位哪条约束出问题
内容的提问来源于stack exchange,提问作者Desalutar
相关产品推荐
相关产品推荐

