何时使用UILayoutPriority = .required在setContentCompressionResist



根据我的理解,如果我们设置

,考虑有两个标签
label1.setContentCompressionResistancePriority(.defaultLow, for: .horizontal) 
label2.setContentCompressionResistancePriority(.defaultHigh, for: .horizontal)

那么label1内容将在必要时截断。我想知道什么时候使用。required,因为apple文档中几乎没有解释。

type Property required A required constraint.
static let required: UILayoutPriority 
Discussion Do not specify a layout constraint that exceeds this number.

"UILayoutPriority"取值范围为"0"~"1000"。提供这些常量是为了方便:

.required    == 1000
.defaultHigh ==  750
.defaultLow  ==  250

也可以指定其他值。例子:

let p: UILayoutPriority = UILayoutPriority(rawValue: 251)
let p: UILayoutPriority = .defaultHigh + 1  // == 751
let p: UILayoutPriority = .required - 1     // == 999

对于您的特定的场景,没有以下区别:

label1.setContentCompressionResistancePriority(.defaultLow, for: .horizontal) 
label2.setContentCompressionResistancePriority(.defaultHigh, for: .horizontal)
// or
label1.setContentCompressionResistancePriority(.defaultLow, for: .horizontal) 
label2.setContentCompressionResistancePriority(.required, for: .horizontal)
// or
label1.setContentCompressionResistancePriority(.required - 1, for: .horizontal) 
label2.setContentCompressionResistancePriority(.required, for: .horizontal)

等等。只要label1的优先级小于label2,label1优先压缩。

当实际值发挥作用时,或者当您可能想要使用.required时,是当它们与其他交互时。

元素。

相关内容

  • 没有找到相关文章

最新更新