19

我正在准备一个与屏幕截图中显示的示例类似的自定义视图。我在运行时添加所有用户界面组件(标签、文本字段、单选按钮……)。要定位元素,我使用Autolayout约束。到目前为止,这部分工作正常。

自定义视图

元素的数量因上下文而异。我想知道如何使用 Autolayout 约束来动态调整父视图的大小(很可能是视图的高度)。因此,视图约束应该考虑为当前附加的子视图定义的高度和边距。

4

2 回答 2

27

我已通过以下设置完成此操作:

  • 容器视图没有高度限制
  • 顶部子视图与容器视图顶部有间距约束
  • 包含的视图之间都有间距限制
  • 底部视图对容器视图底部有间距约束

自动布局系统通过调整容器大小以适应其内容来满足这些约束。

当然,您需要在更改内容时动态设置约束。

于 2012-11-13T18:49:42.913 回答
2

如果您使用的是 NSStackView ,请确保您没有为它的高度和宽度设置约束,并确保所有边都被锚定。

在此处输入图像描述

还要确保将内容拥抱属性设置为 1000。

在此处输入图像描述

于 2016-04-24T06:41:07.663 回答