繁体   English   中英

如何仅使用情节提要使 UILabel 的 UIView 超级视图适合 UILabel 的固有高度?

[英]How do I make the UIView superview of a UILabel fit the intrinsic height of the UILabel using the storyboard only?

我有一个 UIView,它的孩子是一个 UILabel。 然后我使用约束将 UILabel 的左侧、顶部、右侧和底部与其超级视图(UIView)的左侧、顶部、右侧和底部对齐。

但是我得到的是一个 UILabel ,它与其超级视图的高度相匹配,但与其内在高度(取决于 UIView 的大小而小于或大于其文本内容)相匹配。 我期望 UIView 调整自身大小以完全适合 UILabel 的高度。

那么我如何只使用界面构建器来做到这一点呢?

为了使 UILabel 保持其大小并强制外部视图调整大小,您可以将Content Hugging Priority的值更新为1000 (也称为必需)。 这可以在 Interface Builder 中选择标签时在measurements面板中完成。

我认为它们被设置为默认值750

这应该(如果没有其他原因导致更改)使标签采用其内在内容大小并强制其超级视图也符合该大小。

UILabel toptrailingbottomleadingUIView对齐(添加约束)。 如果有的话,从 UIView 移除heightbottom约束。

如果内容很大,您可能需要将UILabel包装到UIScrollView中来代替UIView 并向UIScrollView添加bottom约束

UILabel (251)的Content Hugging Priority默认大于UIView (250)。 验证这一点

使用自动布局非常容易。 只需按照以下步骤

1 - 拖动 UIView 并将align it vertically and horizontally居中align it vertically and horizontally

2 - 现在将 UILabel 拖入 UIView 并将align the label also horizontally and vertically in centre对齐align the label also horizontally and vertically in centre 。现在,IB 将中央 WRT 处的标签与超级视图对齐,而不是 UIView。因此,在size-inspector部分进行更改。

3 - 完成并删除所有红线后,使用命令键同时选择标签和 UIView。

4 - 现在,给他们如下约束

leading = 0, trailing = 0并选择equal widthequal height

大功告成。如果您想测试 UIView 的大小是否与标签的内容相关,请尝试将标签的字体增加到更大的大小,您将看到视图的大小与标签的大小相同。

那里,你完成了:-D。 希望,这很有帮助。

如果有人遇到此问题,同时:

  • UIView 中有 2 个标签
  • 做这里建议的一切

就我而言,我将BOTH UILabels 的Vertical Content Hugging Priority设置为 1000。然后其中一个标签具有不同的字体。 (即,一个标签应该比另一个小)

高度不明确,因为两个标签都试图将它们的高度强加到superview 一旦我降低了较小标签的优先级,一切正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM