ストーリーボードにAspectRatioが1:1のUIImageViewがあり、場合によってはViewControllerでプログラムで2:1に変更したいと考えています。 ViewControllerでその制約の参照を作成しましたが、制約を設定できません。
Swift 3でプログラムで制約を変更できます
let aspectRatioConstraint = NSLayoutConstraint(item: self.YourImageObj,attribute: .height,relatedBy: .equal,toItem: self.YourImageObj,attribute: .width,multiplier: (2.0 / 1.0),constant: 0)
self.YourImageObj.addConstraint(aspectRatioConstraint)
Appleのガイド に記載されているように、プログラムで制約を設定するには3つの方法があります。
制約を設定するための最も便利で流暢な方法は、レイアウトアンカーを使用することです。
ImageViewのアスペクト比を変更するのは1行のコードだけです
imageView.heightAnchor.constraint(equalTo: imageView.widthAnchor, multiplier: 1.0/2.0).isActive = true
"[LayoutConstraints]制約を同時に満たすことができません。"ImageViewの高さ制約への参照を追加してから、非アクティブ化する必要があります。
heightConstraint.isActive = false
制約条件に応じて、制約の乗数を0.5または2に設定します。2:1になります