Xcode 期望堆栈视图中的 UILabel 具有比它更大的高度
Posted
技术标签:
【中文标题】Xcode 期望堆栈视图中的 UILabel 具有比它更大的高度【英文标题】:Xcode expects UILabel in stack view to have greater height than it is 【发布时间】:2016-01-27 18:48:35 【问题描述】:我正在尝试将两组相同大小的 UILabel 直接放在 UIView 上的 UITextField 上方。我认为这将是堆栈视图的绝佳使用。
Here is a screenshot of my elements
但是,出于某种原因,Xcode 似乎期望 UILabel 会比它应该的高得多,并导致有关布局的警告。
Here are the warnings
选中 UILabel 后,您可以看到轮廓。您也可以在其他UILabel上看到相同的大小大纲,并且在选择堆栈视图元素时,它也会显示更大的区域。单击 UITextField 时,将显示轮廓从 UILabel 轮廓结束的位置开始。使用“解决自动布局问题”到“更新框架”将使堆栈视图向外扩展以匹配轮廓的大小,但它会立即跳回原始大小。
我是在滥用还是错误配置了堆栈视图?或者还有其他问题吗?
我正在使用 Xcode 7.3 build 7D111g。
【问题讨论】:
您是否为所有标签提供了相同的宽度/高度约束? @Mr.T 他们都没有约束,堆栈视图设置为填充。当我对标签设置约束时,没有任何变化。 选择所有标签并给予相等的宽度和高度约束,看看会发生什么 @Mr.T 等式约束似乎没有任何影响 由于堆栈视图设置为填充,其他标签尝试填充它。使堆栈视图更小 【参考方案1】:这是因为您的label
正在填充stackview
。
不要对stackview
进行高度限制。只需将以下两个约束添加到顶部stackview
-
顶部空间
在容器中水平居中
Stackview
将从其内容中获取高度。
查看更新后的 GIF:
所有警告都已完成。
希望这能有所帮助。
【讨论】:
如果我向堆栈视图添加顶部约束,它会开始发出警告。 imgur.com/a/rIKNG 根据您的情况检查更新的答案。顶部堆栈视图只需要两个约束。见 GIF 所以总的来说这个storyboard对父stackview有两个限制以上是关于Xcode 期望堆栈视图中的 UILabel 具有比它更大的高度的主要内容,如果未能解决你的问题,请参考以下文章
Xcode - UILabel 没有改变 viewDidAppear 的值