ios - 长宽比限制没有改变

标签 ios swift swift3 nslayoutconstraint

我有两种图像 1.正方形和其他 2.比例为 3:4 的图像。我提前获得有关传入图像的长宽比的信息(位于 currentImageAspectRatio 中)。 我想在一个 UIImageView 中处理这两种图像。

在 Storyboard

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

在代码中

我的viewDidLoad

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

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

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

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

最佳答案

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

关于ios - 长宽比限制没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44450109/

相关文章:

ios - 正常的 iOS 应用大小?

json - Swift json 时间值到本地时区

ios - 在 Swift 中使用 RestKit

iOS - 使用 AVAudioSessionCategoryAmbient 和 duckOthers 和 mixWithOthers 开启静音

ios - 如何在不将 "skipping copy phase strip"设置为 NO 的情况下避免 "binary is code signed” 警告(因为 "strip debug symbols during copy")?

iphone - 在提高音量​​的自定义相机覆盖 ios 上捕获图片

ios - 自动布局约束没有得到尊重

ios - 添加自定义 Segues 后 UITableView 在屏幕上的偏移量

ios - swift 3 : Xcode claims that a non-generic class is generic

ios - 达到 URLCache 限制时会发生什么