我已经有这个问题了很长一段时间以来它让我发疯了:我有一个UILabel文本可以动态改变,我有一个UIImageView应该作为文本的背景.我希望UIImageView能够自我调整以适应UILabel的文本.
例如,"付费"可能会成为"免费"或法语中的"付款人",后面的框应该始终调整大小.
使用Storyboard,我尝试在其顶部添加UILmageView和UILabel,并将UILabel的约束设置为UIImageView,但这最终会将UILabel的大小调整为UIImageView的大小.我无法为UIImageView设置固定的宽度或高度,因为它应该适应.
我的第二次尝试是制作UIView,将其重新分类为UIIimageView,将UILabel添加为子视图,使UIView调整大小到UILabel并以编程方式添加图像,但再次没有成功.
这样做的正确方法是什么?
对于第一种方法,我假设您设置了标签,图像视图具有相同的垂直和水平中心,并且具有相同的高度和宽度.问题是布局引擎假设图像的内在大小比标签更重要.要更改它,您需要更改拥抱优先级和视图的抗压缩性.转到标签(图片)的大小检查,并将拥抱优先级提高到所需.这将是它的高度和宽度,它的内在高度和宽度.您还可以降低图像视图的抗压缩性,因此可以更容易地调整尺寸.
标签的约束:
您可以更改顶部并将其置于视图中的适当位置.
图像视图的约束: