我有一个孩子是UILabel的UIView。然后,我使用约束将UILabel的左侧,顶部,右侧和底部与其超视图(UIView)的左侧,顶部,右侧和底部对齐。
但我得到的是一个UILabel,它匹配其超视图的高度,但不匹配其内在高度(根据UIView的大小,小于或大于其文本内容)。我期望UIView能够调整自身以适应UILabel的高度。
那么我该如何仅使用界面构建器呢?
答案 0 :(得分:0)
为了使UILabel保持其大小并强制外部视图调整大小,您可以将Content Hugging Priority
的值更新为1000
(a.k.a.必需)。在Interface Builder中选择标签时,可以在measurements
面板中完成此操作。
我认为它们被设置为750
的默认值。
这应该(如果没有其他因素导致更改)使标签采用其内在内容大小并强制其superview也符合该大小。
答案 1 :(得分:0)
将top
的{{1}},trailing
,bottom
和leading
与UILabel
对齐(添加约束)。
如果有的话,从UIView中删除UIView
和height
约束。
如果内容很大,您可能需要将bottom
换成UILabel
来代替UIScrollView
。并向UIView
bottom
约束
默认情况下,UIScrollView
(251)的{p} Content Hugging Priority
多于UILabel
(250)。验证这个
答案 2 :(得分:0)
使用自动布局非常简单。只需按照以下步骤操作
1 - 将UIView和align it vertically and horizontally
拖到中间位置。
2 - 现在将UILabel拖入UIView和align the label also horizontally and vertically in centre
。现在,IB将中心WRT处的标签与超级视图对齐而不是UIView.So,在size-inspector
部分中更改它。
3 - 完成此操作并删除所有红线后,使用命令键同时选择标签和UIView。
4 - 现在,给他们约束如下
leading = 0, trailing = 0
并选择equal width
和equal height
。
如果您想测试UIView大小与标签的内容相对应,请尝试将标签的字体增加到更大的尺寸,您将看到视图的大小与标签。
在那里,你完成了:-D。希望,这很有帮助。
答案 3 :(得分:0)
如果有人遇到此问题,则:
在我的情况下,我将 BOTH UILabels的Vertical Content Hugging Priority
设置为1000。然后,其中一个标签具有不同的字体。 (即一个标签应该小于另一个标签)
高度不明确,因为两个标签都试图将其高度压在superview
上。一旦我降低了较小标签的优先级,一切就可以正常工作。