作者:dnjaskn | 来源:互联网 | 2023-01-23 17:32
我试图将约束的优先级更改为高于另一个约束的优先级.在Swift 4/iOS 11中,此代码不再编译:
let p = self.lab2.contentCompressionResistancePriority(for:.horizontal)
self.lab1.setContentCompressionResistancePriority(p+1, for: .horizontal)
我该怎么做?
1> matt..:
在Swift 4/iOS 11中,UILayoutPriority不再是一个简单的数字; 它是一个RawRepresentable结构.你必须通过遍历rawValue
结构来进行算术运算.
手头有一个如下所示的扩展可能是有用的:
extension UILayoutPriority {
static func +(lhs: UILayoutPriority, rhs: Float) -> UILayoutPriority {
let raw = lhs.rawValue + rhs
return UILayoutPriority(rawValue:raw)
}
}
现在,+
运算符可用于将UILayoutPriority与数字组合,就像过去一样.您的问题中的代码现在将正确编译(和工作).