如何以视觉语言格式编写内在大小的内容拥抱优先级?

How to write content hugging priority of intrinsic size in visual language format?

我正在尝试使用 Autolayout 并排放置两个标签——左边的标签是字段名称,右边的​​标签是值。我正在用可视语言格式编写约束。

但是,我不希望左侧标签超出其固有宽度,我希望右侧标签填满屏幕中剩余的宽度。我知道我只需要在左侧标签的固有宽度上分配更高的内容拥抱优先级,但是如何在 VLF 中写入固有宽度?

我希望我的 VLF 字符串看起来像这样:

H:|-20-[leftLabel(==intrinsicContentWidthGoesHere@1000)]-20-[rightLabel]-20-|

你做不到。有很多的东西是视觉格式语法做不到的;这只是其中之一。视觉格式语法有它的好处,但它只能执行约束能够执行的最常用设置的一小部分。再举个例子,你不能用它来设置中心约束。

混合和匹配视觉格式语法约束与单一约束或其他约束命令没有错。在您的情况下,只需向视图发送 setContentCompressionResistancePriority:forAxis: 命令或 setContentHuggingPriority:forAxis: 命令,然后继续。