我有一个UIView,它是UIImageView和UILabel的超级视图。根据其中的文本数量,UILabel可以有不同的大小。因此,我需要UIView与UILabel一起增长和缩小,但不能使其工作。
屏幕截图如下所示:

如你所见,标签的上下间距太大了。在.xib中,我将UILabel的顶部和底部约束设置为仅为10,但显然这些约束被违反了。UIView对上面的框架有顶部约束,图像为>=10,这样它就可以从10中生长。
您可以在下面看到.xib:

我试着增加UIView的Content Hugging Priority,但没有帮助。相对于其superview UIView,UILabel只有4个约束:上、下、左、右。我也尝试过将UILabel的Content Hugging Priority相对于UIView进行更改,但没有成功。UIImageView是图中所示的UIView的实际边框。
发布于 2016-10-07 22:06:41
我想你错过了:
查看:
标签:
超行高度:0
>= 10的上边距和下边距
工作示例的屏幕截图:

提示:使用预览
发布于 2016-01-27 13:02:15
因此,在我的例子中,解决方案是相对于UIImageView设置UILabel的约束,然后将Content Compression Resistance Priority设置为250。然后,一切都开始正常工作。谢谢你,matt!我打开了你的github项目,发现UIImageView的Content Compression Resistance Priority应该是250 --这很关键。
发布于 2016-01-27 04:18:26
将标签设置为.sizeToFit(),或在InterfaceBilder中将行数设置为0,然后设置最大宽度(首选宽度)或设置>=/<=约束。根据我的经验,你必须尝试一些约束才能让它工作,在这种情况下,助手编辑器中的预览非常有用。然后,您可以将superviews的宽度/高度设置为与标签相同,并设置为使其更大。希望这能起作用。
https://stackoverflow.com/questions/35023011
复制相似问题