纵横比约束没有改变

Posted

技术标签:

【中文标题】纵横比约束没有改变【英文标题】:Aspect ratio constraint not getting altered 【发布时间】:2017-06-09 05:45:41 【问题描述】:

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

在故事板中

我在 imageView 中添加了 1:1 和 3:4 约束,然后取消选中 Installed 以获取 3:4 约束。

在代码中

我的viewDidLoad

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

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

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

而且我还需要建议在哪里是最理想的地方来做这样的事情,比如改变约束(我想使用viewWillLayoutSubviews)。

【问题讨论】:

您添加了 threeByFourImageConstraint 并再次表示您已取消选中它。我不明白。老兄 viewDidAppear 中尝试此代码,或者您认为正确的方法也可以在viewDidLayoutSubviews 中进行 我之前曾尝试从viewWillLayoutSubviewsviewWillAppear viewDidLoad 调用代码,现在终于可以从viewDidLayoutSubviews 调用它了。 谢谢@PiyushPatel 我认为这是我的错误,我应该删除这个问题吗?? 【参考方案1】:

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

【讨论】:

以上是关于纵横比约束没有改变的主要内容,如果未能解决你的问题,请参考以下文章

Keras - 如何在不改变纵横比的情况下使用 ImageDataGenerator

在不改变原始纵横比的情况下将位图大小调整为 512x512

如何在调整窗口大小时锁定纵横比?

图像的 UIPageViewController 如何在方向改变时保持图像的纵横比?

如何在不改变原始纵横比的情况下组合两个不同大小的 UIImage?

使用 Sharp 压缩图像大小而不改变图像的纵横比