iOS自动布局,如何让View包装内容?

时间:2015-11-30 10:13:27

标签: ios autolayout

查看heirachy:

- RootView
  - ContainerView
    - Label1
    - Label2

我希望ContainerView始终包装Label1和Label2,当Label1或Label2内容发生变化时调整ContainerView的高度。

我的约束:

H: [Label1]-[Label2(==Label1)]
V: [Label1]-(>=0)
V: [Label2]-(>=0)

没有例外,但布局模糊不清。

3 个答案:

答案 0 :(得分:1)

请遵循以下逻辑。它可以帮助您解决问题:

  1. 您需要做的第一件事就是让您的标签包装其内容。您可以按照Mark的建议执行此操作here

  2. 从Storyboard或.xib文件中保存对ContainerView的高度约束的引用

  3. 每次更新两个标签的内容后,每次更新高度约束以适当的高度

  4. 这在类似情况下对我有用。您还必须为ContainerView添加所有约束up down left right以适合RootView

答案 1 :(得分:0)

考虑一下,

如果要让高度包裹内容,请在更高条件下将高度设为“ 0” view.height> = 0

如果您要width,则宽度要相同...以便使视图保持最小尺寸

答案 2 :(得分:0)

在界面构建器中:

  1. 首先将高度设置为恒定值,例如200(为方便起见)。
  2. 设置所有子约束(具有等于关系)。
  3. 删除父级的身高(200)。

这对我有用,并且IB中没有出现错误。因为身高不再模糊。

对于宽度,可以用相同的方法实现。