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

Posted

技术标签:

【中文标题】如何以视觉语言格式编写具有内在大小优先级的内容?【英文标题】:How to write content hugging priority of intrinsic size in visual language format? 【发布时间】:2015-02-04 02:52:48 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

谢谢,这是个不幸的消息。 :( 我求助于 [leftLabel setContentHuggingPriority:forAxis]

以上是关于如何以视觉语言格式编写具有内在大小优先级的内容?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以继承 UITableView 并根据单元格的数量使其高度具有内在的内容大小?

UIStackView 的子视图具有固有大小,但仍然忽略包含优先级的内容

自动布局内在内容大小以填满屏幕

为自动布局设置数字 UILabel 以正确计算内在内容大小

使用HTML编写一个网页:如何将图片依照想要的形状摆放,比如爱心。如何控制图片大小。请教如何写代码?

SVG 内容的内在大小属性