ios 如何使UILabel的UIView超级视图仅使用脚本来适应UILabel的固有高度?

rqcrx0a6  于 5个月前  发布在  iOS
关注(0)|答案(5)|浏览(93)

我得到了一个子视图是UILabel的UIView,然后使用约束将UILabel的左、上、右、下对齐到它的超级视图(UIView)。
但我得到的是一个与其超级视图的高度匹配但不与其固有高度匹配的UILabel(小于或大于其文本内容,取决于UIView的大小)。我期望的是UIView调整自身大小以完全适应UILabel的高度。
那么,如何只使用接口构建器来实现这一点呢?

2w2cym1i

2w2cym1i1#

为了使UILabel保持其大小并强制外部视图调整大小,您可以将Content Hugging Priority的值更新为1000(也称为必需)。这可以在界面生成器中选择标签时在measurements面板中完成。
我认为它们默认设置为750
这应该(如果没有其他原因导致更改)使标签采用其固有内容大小,并强制其超级视图也符合该大小。

uqzxnwby

uqzxnwby2#

UILabeltoptrailingbottomleadingUIView对齐(添加约束)。如果有,请从UIView中删除heightbottom约束。
如果内容很大,您可能需要将UILabel Package 到UIScrollView中,以代替UIView,并向UIScrollView添加bottom约束
默认UILabel(251)的Content Hugging Priority大于UIView(250),请验证

uxh89sit

uxh89sit3#

使用自动布局非常简单。只要按照以下步骤操作即可
1 -在中间拖动一个UIView和align it vertically and horizontally
2 -现在将UILabel拖到UIView和align the label also horizontally and vertically in centre中。现在,IB将WRT中心的标签与superview对齐,而不是UIView。因此,在size-inspector部分中进行更改。
3 -一旦你完成了这一点,所有红线被删除,选择标签和UIView一起使用命令键。
4 -现在,给予它们如下约束
leading = 0, trailing = 0并选择equal widthequal height
这样就完成了。如果你想测试UI视图的大小是否与标签的内容相关,尝试将标签的字体增大到更大的大小,你会看到视图的大小将与标签的大小相同。
你已经完成了:-D.希望,这是有帮助的。

zpjtge22

zpjtge224#

如果有人遇到此问题,而:

  • 在UIView中有2个标签
  • 做所有建议的事情

在我的例子中,我将BOTHUILabels的Vertical Content Hugging Priority设置为1000。然后其中一个标签具有不同的字体。(即。一个标签应该比另一个小)
高度是模糊的,因为两个标签都试图将它们的高度强加给superview。一旦我降低了较小标签的优先级,一切都正常。

xyhw6mcr

xyhw6mcr5#

在我的例子中,在一个UIView中有两个UILabel。其中一个UILabel垂直居中于UIView。另一个(即第二个)UILabel根据UIView被赋予顶部和底部约束。我的目标是根据第二个UILabel调整UIView的大小。UIView和第二个UILabel都采用了奇怪的高度。所以我将第二个UILabel的垂直内容拥抱优先级从251设置为1000。
长话短说,我只好把拥抱的内容设置为优先级1000

相关问题