【问题标题】: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
  • 我认为这是我的错误,我应该删除这个问题吗??

标签: ios swift swift3 nslayoutconstraint


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-05-07
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 2017-12-30
    相关资源
    最近更新 更多