如何使用Swift更改约束的乘数.
someConstraint.multiplier = 0.6 // error: 'multiplier' is get-only property
Run Code Online (Sandbox Code Playgroud)
我想知道如何更改代码中的乘数(Swift).
Kli*_*akM 68
由于multiplier是只读属性而您无法更改它,因此需要将约束替换为其已修改的克隆.
您可以编写扩展来执行此操作,例如:
extension NSLayoutConstraint {
func constraintWithMultiplier(_ multiplier: CGFloat) -> NSLayoutConstraint {
return NSLayoutConstraint(item: self.firstItem!, attribute: self.firstAttribute, relatedBy: self.relation, toItem: self.secondItem, attribute: self.secondAttribute, multiplier: multiplier, constant: self.constant)
}
}
Run Code Online (Sandbox Code Playgroud)
Swift 3+版本:
let newConstraint = constraintToChange.constraintWithMultiplier(0.75)
view.removeConstraint(constraintToChange)
view.addConstraint(newConstraint)
view.layoutIfNeeded()
constraintToChange = newConstraint
Run Code Online (Sandbox Code Playgroud)
用法:
extension NSLayoutConstraint {
func constraintWithMultiplier(_ multiplier: CGFloat) -> NSLayoutConstraint {
return NSLayoutConstraint(item: self.firstItem!, attribute: self.firstAttribute, relatedBy: self.relation, toItem: self.secondItem, attribute: self.secondAttribute, multiplier: multiplier, constant: self.constant)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22153 次 |
| 最近记录: |