使UIImageView调整大小以适应UILabel与AutoLayout

自从相当一段时间以来,我遇到了这个问题,这让我发疯:我有一个可以动态更改文本的UILabel,并且我有一个应该作为文本背景的UIImageView。 我希望UIImageView自行调整大小,使其始终适合UILabel的文本。

在这里输入图像描述

“付费”可能会变成“免费”或法语中的“Payant”,并且后面的框应始终调整大小。

使用Storyboard,我尝试添加UIImageView并将UILabel添加到UIImageView中,然后将UILabel的约束设置为UIImageView,但最终将UILabel的大小调整为UIImageView的大小。 我无法为UIImageView设置固定的宽度或高度,因为它应该适应。

我的第二个尝试是制作UIView,将其重新分类为UIIimageView,将UILabel添加为子视图,将UIView调整为UILabel并以编程方式添加图像,但是再次没有成功。

什么是正确的方法来做到这一点?


对于第一种方法,我假设你设置标签和图像视图具有相同的垂直和水平中心以及相同的高度和宽度。 问题是布局引擎假设图像的固有尺寸比标签更重要。 要改变这一点,您需要更改拥抱优先级和视图的抗压缩性。 在这里输入图像描述 去标签的大小检查(图片)并且增加拥抱优先级到需要的。 这将是它的高度和宽度,因为它是固有的高度和宽度。 你也可以减少图像视图的抗压缩性,所以它的尺寸更小。

标签的限制: 在这里输入图像描述

您可以更改顶部并导致将其放置在视图中的适当位置。

图像视图的约束: 在这里输入图像描述

链接地址: http://www.djcxy.com/p/28209.html

上一篇: Make UIImageView resize to fit UILabel with AutoLayout

下一篇: Get the number of lines in UILabel iOS8