修改constraint的second item后constant变为负值的布局问题求助
布局适配解决方案
1. 先修复无法绑定stack view的问题
- 确认male/female horizontal stack view和top collection view、New In label属于同一父视图的直接子视图,没有嵌套在其他次级视图内
- 确保stack view在视图层级列表中的位置和collection view、label平级,不要被误放到其他视图的子层级里
2. 给stack view添加基础约束
这一步是让布局系统能识别到stack view的位置,后续才能和其他控件绑定:
- 顶部约束:
stack view.top绑定到top collection view.bottom,设置你需要的正间距值 - 尾部约束:
stack view.trailing绑定到父视图的trailing边,按设计稿设置合适的边距 - 确认stack view内部的male、female按钮已经设置好内容,stack view的axis设为horizontal,无需额外添加宽高约束,依靠自身内容计算尺寸即可
3. 调整label的约束
- 完全删除label原来绑定到top collection view底部的旧顶部约束
- 新增约束:
label.top绑定到stack view.bottom,设置你需要的正间距值即可 - 保留label其他所有原有约束不变
4. 解决约束报错
你之前遇到负值、报错的核心原因是约束链条不完整或者存在重复约束,做完上述操作后:
- 选中所有相关视图,点击Xcode底部的
Resolve Auto Layout Issues按钮,选择Update Frames刷新所有视图的frame - 检查垂直方向的约束链条是否完整:top collection view顶部有约束 → 绑定到stack view顶部 → stack view绑定到label顶部 → label底部有绑定到下方视图的约束,整条链没有断点、没有重复约束即可消除报错
内容的提问来源于stack exchange,提问作者Dev-onimoe
相关产品推荐
相关产品推荐

