自动布局图像和标签

时间:2015-01-17 08:47:11

标签: objective-c swift autolayout

我目前正在尝试在标签旁边布局图像。我希望标签具有固有高度,图像尺寸与此固有高度相匹配。然后标签宽度应该填充。所以像这样:

如果标签高10px(由字体等引起的固有高度),则图像应为10px×10x,标签宽度应延长。

对于我的自动布局限制,我设置了以下内容:

图片上的

  • 顶部和前缘固定到superview
  • 将高度和宽度的尺寸与标签的高度匹配
标签上的

  • 顶部,底部和后缘固定到superview
  • 前缘固定为图像
  • 压缩垂直轴的电阻优先级

所以这就是事情:

当我在没有图像加载到uiimageview.image的情况下布置视图时,一切都完美展现。当我稍后设置图像时,图像适合10x10框。

但是,如果我首先设置我的图像(假设图像是40x40),然后我布置我的视图,那么由于某种原因图像视图具有优先权。因此,图像视图为40x40,标签的高度为40以匹配!

我希望标签的内在高度优先于图像视图中图像的高度。

我如何让它工作?现在,我的工作是永远不要在布局之前设置图像 - 但这似乎是我在乱砍的东西。

1 个答案:

答案 0 :(得分:1)

基本上,图像视图阻止压缩其内容的优先级高于标签抵抗扩展超出其内容所需的大小。你需要扭转它。

您需要将图像视图上的压缩电阻优先级设置为低于标签的垂直内容拥抱优先级。降低前者和/或增加后者。