当UILabel内部增长时扩展UIView

时间:2016-01-26 20:12:17

标签: ios xcode uiview xib

我有一个UIView,它是UIImageViewUILabel的超级视图。 UILabel可以具有不同的大小,具体取决于其中的文本量。因此,我需要UIViewUILabel一起增长和缩小,但无法使其正常工作。

它的外观截图如下:

enter image description here

正如您所看到的,标签上方和下方的间距太大。在.xib我将UILabel的顶部和底部约束设置为10,但显然这些都是以某种方式违反的。 UIView对上面的框架有最高限制,图片为>=10,因此它可以从10增长。

您可以在下面看到.xib

enter image description here

我尝试增加Content Hugging Priority的{​​{1}},但这没有帮助。 UIView只有4个约束:相对于其超级视图UILabel的顶部,底部,左侧,右侧。我还尝试相对于UIView更改Content Hugging Priority UILabel但未成功。 UIView是图片中显示的UIImageView的实际边框。

3 个答案:

答案 0 :(得分:4)

认为你错过了:

查看:

  • 约束:高度> = 20

标签:

  • 行:0
  • 约束:(超级)视图的顶部和底部边距
  • 约束:高度> = 10

一个工作示例的屏幕截图:

enter image description here

提示:使用预览

答案 1 :(得分:1)

因此,在我的情况下,解决方案是设置UILabel相对于UIImageView的约束,然后将Content Compression Resistance Priority设置为250。然后一切都开始奏效了。谢谢matt!我打开了您的github项目,发现Content Compression Resistance Priority的{​​{1}}应该是UIImageView - 这是至关重要的。

答案 2 :(得分:0)

将标签设置为.sizeToFit(),或者在InterfaceBilder中将行数设置为0,并设置最大宽度(优先宽度)或make> = /< =约束。根据我的经验,您必须使用约束来使其工作,助理编辑器中的预览在这种情况下非常有用。然后,您可以将超视图的宽度/高度设置为与标签相同,并将其设置为更大。希望这有效。