具有动态高度的 UIView 多个 UILabel

UIView with dynamic height multiple UILabel

我正在制作一个自定义 UIView,其中包含 2 个 UILabel,每个 UILabel 都具有动态高度。 我无法为动态高度设置约束。 (我是自动布局和 iOS 东西的新手)。

两个 UILabel 从顶部和底部相互连接,并与超级视图水平对齐。当我更改其中一个 UILabel 的内容时,UIView 和 UILabel 不会根据需要调整大小。

求推荐。附上当前约束的屏幕截图。

  1. 在界面生成器中将两个标签的行 属性 设置为 0。
  2. 确保没有任何标签或 uiview 的高度限制。
  3. 确保 uiview 没有强制其达到特定大小的约束,例如,如果您对 uiview 有一个距 superview 顶部一定距离的约束和另一个距 superview 底部一定距离的约束,它不会工作。
  4. 尝试更改代码中标签的文本,高度应该会自动调整。

我根据你的要求做了一个demo给你。从下方下载 link,

Autoresize UIView and UILabel

分步指南:-

第 1 步:- 将约束设置为 UIView

1) 前导 2) 前导 3) 尾随(来自主视图)

第 2 步:- 设置标签 1 的约束

1) Leading 2) Top 3) Trailing (From it's superview)

步骤 3 :- 设置标签 2 的约束

1) Leading 2) Top 3) Trailing (From it's superview)

第 4 步:- 最棘手 从 UIView 给 UILabel 底部。

在 Xcode 10 及更高版本中 - Select 您的 UIView 和标签之后来自“对齐约束”部分 select 底部边缘约束。

第 5 步:-(可选)将约束设置为 UIButton

1) 前导 2) 底部 3) 尾随 4) 固定高度(从主视图)

输出:-

注意:- 确保在 Label 属性.

中设置行数 =0

Edit1 :- 如果您想使用 BottomConstrain (>=) 增加尺寸,请检查下图。

我希望这些信息足以理解根据 UILabel 的高度自动调整 UIView 和根据文本自动调整 UILabel 的大小。