As mentioned, the Aspect Ratio is really the constraint's Multiplier
... which is a "get only" property.
You can use a NSLayoutConstraint
extension to change the Multiplier (found here: https://stackoverflow.com/a/33003217/6257435):
extension NSLayoutConstraint {
/**
Change multiplier constraint
- parameter multiplier: CGFloat
- returns: NSLayoutConstraint
*/
func setMultiplier(multiplier:CGFloat) -> NSLayoutConstraint {
NSLayoutConstraint.deactivate([self])
let newConstraint = NSLayoutConstraint(
item: firstItem,
attribute: firstAttribute,
relatedBy: relation,
toItem: secondItem,
attribute: secondAttribute,
multiplier: multiplier,
constant: constant)
newConstraint.priority = priority
newConstraint.shouldBeArchived = self.shouldBeArchived
newConstraint.identifier = self.identifier
NSLayoutConstraint.activate([newConstraint])
return newConstraint
}
}
Now, in viewDidLoad()
, you can call:
aspectRatioConstraint = aspectRatioConstraint.setMultiplier(multiplier: 1.0)