宽高比约束没有改变

Aspect ratio constraint not getting altered

我有两种图像 1.Square 和其他 2. 比例 3:4 的图像。并且我提前获得有关传入图像的纵横比的信息(在 currentImageAspectRatio 中)。 我想在一个 UIImageView 中处理两种图像。

在情节提要中

我已将 1:1 和 3:4 约束添加到我的 imageView,然后取消选中 3:4 约束的 Installed

在代码中

我的 viewDidLoad

if currentImageAspectRatio == .square{
    // Already Square
} else {
    NSLayoutConstraint.deactivate([squareImageConstraint])
    imageView.addConstraint(threeByFourImageConstraint)
    self.view.layoutIfNeeded()
}

但这似乎不起作用。我也尝试在 viewWillAppear: 中放入相同的代码,但那也没用。

如果我做错了什么,我会感到困惑。

而且我还需要一些建议,告诉我在哪里最适合做诸如更改约束之类的事情(我正在考虑使用 viewWillLayoutSubviews)。

viewDidLayoutSubviews 调用相同的代码对我有用。