首页 文章

iOS - 使UIImageView调整大小以适应UILabel和AutoLayout

提问于
浏览
3

我已经有这个问题了很长一段时间以来它让我发疯了:我有一个UILabel文本可以动态改变,我有一个UIImageView应该作为文本的背景 . 我希望UIImageView能够自我调整以适应UILabel的文本 .

enter image description here

例如,“付费”可能会成为“免费”或法语中的“付款人”,后面的框应该始终调整大小 .

使用Storyboard,我尝试在其顶部添加UILmageView和UILabel,并将UILabel的约束设置为UIImageView,但这最终会将UILabel的大小调整为UIImageView的大小 . 我无法为UIImageView设置固定的宽度或高度,因为它应该适应 .

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

这样做的正确方法是什么?

1 回答

  • 8

    对于第一种方法,我假设您设置了标签,图像视图具有相同的垂直和水平中心,并且具有相同的高度和宽度 . 问题是布局引擎假设图像的内在大小比标签更重要 . 要更改它,您需要更改拥抱优先级和视图的抗压缩性 .
    enter image description here
    转到标签(图片)的尺寸检查并将拥抱优先级增加到所需 . 这将是它的内在高度和宽度 . 您还可以降低图像视图的抗压缩性,因此可以更容易地调整尺寸 .

    标签的约束:
    enter image description here

    您可以更改顶部并将其置于视图中的适当位置 .

    图像视图的约束:
    enter image description here

相关问题