IOS标签和视图约束高度

时间:2014-12-02 07:02:13

标签: ios uilabel constraints

我对iOS的约束感到困惑,我已经阅读了很多文章,但是当根据 UILabel 尝试设置 UIView 的高度限制时会卡住内容高度。我知道这是常见的问题,但我真的不明白解决方案。我认为这个问题的主要内容是约束优先级,但我无法正确设置它们。在一种情况下, UIView 的高度不会更改为0,而在其他 UILabel 高度中没有任何意义。

因此。我有:

  1. UIView 高度约束和后代约束(下方)
  2. UIImageView 高度= 32,宽度= 32,顶部= 10,左= 10,底部> = 10
  3. UILabel 左边是UIImageView = 10,顶部= 10,右边= 10,底部= 10
  4. 我想要:

    1. 如果我在 UILabel 中放置任何文字,我想根据 UILabel 的内容大小高度 UIView 的动态高度。
    2. 如果 UILabel 中没有文字,我想将 UIView 的高度等于0(隐藏 UIView 完全)。
    3. UIImageView - 只是图标。如果没有文本,必须缩小到0,如果有一些文本,必须有高度32,顶部约束10,底部约束更多或等于10。

      UPD:

      通过以编程方式添加高度约束来解决问题。 (不喜欢这个)

1 个答案:

答案 0 :(得分:0)

如果您设置了相应的优先级,您可以使约束完全控制标签,图像和视图高度。

  • 将四个垂直边距优先级设置为小于1000(假设为999)
  • 也将图像高度优先级设置为999.
  • 将标签垂直拥抱优先级设置为1000
  • 将图像高度设置为小于或等于标签高度为1000优先级
  • 设置标签高度小于或等于容器视图高度乘以1:10(或任何大数字),优先级为1000

喜欢这个

enter image description here

视图就是这个

enter image description here

和这个

enter image description here