2014-12-02 84 views
0

我真搞不清楚的约束是iOS的,我读了很多文章,但被卡住,当试图设置的高度限制的UIView根据的UILabel内容高度。我知道这是常见的问题,但我真的不明白这些解决方案。我认为这个问题的主要内容是限制优先级,但我无法正确设置它们。在一种情况下,高度UIView不会更改为0,而在其他UILabel高度没有任何意义。IOS标签和查看限制高度

所以。我有:

  1. 的UIView高度约束,和后代约束(下文)
  2. 的UIImageView高度= 32,宽度= 32,顶部= 10,左= 10,底> = 10
  3. 的UILabel左的UIImageView = 10,顶部= 10,右= 10,底部= 10

,我想:

  1. 如果我有任何文字在的UILabel到的地方,我根据的UILabel的内容大小的高度希望的的UIView动力高度。
  2. 如果没有文字的UILabel的地方,我想设置的UIView的高度等于0(隐藏的UIView完全)。

UIImageView - 只是图标。如果没有文本,必须缩小到0,如果有一些文字,必须有高度32,顶部约束10,底部约束更多或等于10

UPD:

修复问题,由以编程方式添加高度限制。 (不喜欢这个)

+0

那么它是什么用的UIImageView的? – Abhishek 2014-12-02 07:31:12

+0

只是图标,更新了问题 – wtorsi 2014-12-02 08:00:30

回答

0

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

  • 设置四个垂直边距优先级低于1000(可以说999)
  • 设置图像高度重视999了。
  • 设置拉布勒垂直拥抱优先1000
  • 集图像高度小于或等于标签高度与1000优先
  • 设置标签高度小于或与乘数等于容器视图高度1:10(或任何大的数目)与优先级1000

像这样

enter image description here

的看法是这样的

enter image description here

enter image description here