我正在尝试将两组相同大小的 UILabel 直接放在 UIView 上的 UITextField 上方。我认为这将是堆栈 View 的绝佳用途。
Here is a screenshot of my elements
但是,出于某种原因,Xcode 似乎预计 UILabel 会比应有的高度高得多,并导致出现有关布局的警告。
选择 UILabel 后,您可以看到轮廓。您也可以在另一个 UILabel 上看到同样大小的轮廓,并且在选择堆栈 View 元素时它也会显示更大的区域。单击 UITextField 时,轮廓显示为从 UILabel 的轮廓结束处开始。使用“解决自动布局问题”到“更新框架”将使堆栈 View 向外扩展以匹配轮廓的大小,但它会立即跳回原始大小。
我是否误用或错误配置了堆栈 View ?或者还有其他问题吗?
我正在使用 Xcode 7.3 build 7D111g。
最佳答案
这是因为您的 label
正在填充 stackview
。
不要对 stackview
进行高度限制。只需将以下两个约束添加到顶部 stackview
- 顶层空间
- 在容器中水平居中
Stackview
将从其内容获取高度。
检查更新后的 GIF :
所有警告结束。
希望对您有所帮助。
关于Xcode 期望堆栈 View 中的 UILabel 具有比实际高度更大的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35045600/