视觉格式语言多谓词

Visual Format Language Multiple Predicates

我正在使用视觉格式语言,我 运行 遇到了一个问题。

以Apple的Multiple Predicates为例:

Apple Layout Guide

多个谓词

[flexibleButton(>=70,<=100)]

如果我希望按钮在正常状态下的大小为 100,如果这不起作用,按钮可以减小到 70。我该如何实现?

我的示例如下所示:

"H:|-(>=10)-[Textfield]-(>=5,<=50)-[firstButton]-(<=50)-[secondButton]-(>=10)-|"

所以我希望标准边距为 50,但如果这不起作用,则允许文本字段扩展到 5,但不能进一步扩展。实现这一目标的通常方法是什么?因为现在它只是选择“5”-Constraint 并停留在那里。

我使用了优先级,现在它起作用了。 这是我的解决方案:

视觉语言:

"H:|-(>=10)-[Textfield]-(50@800,>=5@790)-[firstButton]-(<=50)-[secondButton]-(>=10)-|"

除此之外,我还必须设置压缩阻力的优先级。

Textfield.setContentCompressionResistancePriority(UILayoutPriority(rawValue: 750), for: .horizontal)