[英]Swift remove aspect ratio constraint
您可以创建约束的IBOutlet,然后在代码中将isActive设置为false。
假设您具有imageView
的引用,并已为约束条件指定了标识符。
在您的情况下,已使用标识符命名约束: aspectRatio
。
因此,对于以上内容,您可以执行以下操作:
//Get constraints filtered against a user-defined identifier
let filteredConstraints = imageView.constraints.filter {
$0.identifier == "aspectRatio"
}
//Get the first constraint (...as per your case)
let aspectRatio = filteredConstraints.first
//Deactivate it
aspectRatio?.isActive = false
为了进一步改善这一点,您可以将UIView
扩展为:
extension UIView {
func constraint(withIdentifier identifier: String) -> NSLayoutConstraint? {
let filteredConstraints = self.constraints.filter {
$0.identifier == identifier
}
return filteredConstraints.first
}
}
现在您终于可以完成您最初想要的工作,即:
let aspectRatio = imageView.constraint(withIdentifier: "aspectRatio")
aspectRatio?.isActive = false
您可以使用func removeConstraint(_ constraint: NSLayoutConstraint)
方法来删除添加的约束。
还提到,此方法在将来的版本中将不建议使用,应避免使用。 而是将NSLayoutConstraint的active属性设置为NO。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.