图像和标签的自动布局

autolayout for an image and a label

我目前正在尝试在标签旁边布置图像。我希望标签具有固有高度,并且图像尺寸与该固有高度相匹配。然后标签宽度应该填满。所以像这样:

如果标签为 10 像素高(由于字体等导致的固有高度),则图像应为 10 像素 x 10 倍,并且标签宽度应扩展。

对于我的自动布局约束,我设置了以下内容:

图片上:

在标签上:

事情是这样的:

当我在未将图像加载到 uiimageview.image 的情况下布置我的视图时,一切都布置得很完美。当我稍后设置图像时,图像适合 10x10 框。

但是,如果我先设置图像(假设图像为 40x40),然后布置视图,则出于某种原因图像视图具有优先权。结果,图像视图为 40x40,标签的高度为 40 以匹配!

我希望标签的固有高度在图像视图中优先于图像的高度。

我如何让它工作?现在,我的解决方法是永远不要在布局之前设置图像 - 但这似乎是我在破解某些东西。

基本上,图像视图拒绝压缩其内容的优先级高于标签拒绝扩展超出其内容所需大小的优先级。你需要扭转它。

您需要将图像视图上的 Compression Resistance 优先级设置为低于标签的垂直 Content Hugging 优先级。降低前者and/or增加后者