【发布时间】: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中进行 -
我之前曾尝试从
viewWillLayoutSubviews、viewWillAppear和viewDidLoad调用代码,现在终于可以从viewDidLayoutSubviews调用它了。 -
谢谢@PiyushPatel
-
我认为这是我的错误,我应该删除这个问题吗??
标签: ios swift swift3 nslayoutconstraint