在运行时快速更改约束

问题描述 投票:0回答:2

我在ios的约束部分真的很弱。我已经浏览了很多参考链接,如下所示,但仍然无法解决我的问题。

隐藏自动布局UIView:如何获取现有的NSLayoutConstraint来更新这个

在这种情况下,我需要根据某些条件更改 UIView2 的 y 轴。 Storyboard.png 显示布局。

如果 UIView2 的条件在步骤 1、步骤 2 和步骤 3 中失败应该是可见的并且它的位置也应该改变,如条件 1.png 所示

如果条件通过带有步骤1的UIView2,步骤2和步骤3不应该是可见的如condition1.png所示

请向我提供如何实现上述场景的步骤。我尝试这样做,但如果为 UIView1 设置约束,高度保持不变并且在运行时不会改变。

swift uiview autolayout show-hide nslayoutconstraint
2个回答
4
投票

只需制作两个 UIView 的高度约束的出口并使用常量属性来更改高度约束,例如......

if conditionfails{
     heightconstOfView1.constant = 0
}
else{
    heightconstOfView2.constant = 0
}

1
投票

我使用插座来设置情节提要上的约束,按钮之间的 div(使用旧方法设置动态布局)。因此,对于大屏幕(iPhone 6 及更高版本),我更新固定高度的值(仅在纵向模式下查看应用程序)。对我有用的是:

constHeightlogo.constant = 140 //old value = 72
///set any other updates here then force the view
self.view.layoutIfNeeded()

工作起来很有魅力。

请参阅此处相关内容:

在 Swift 中以编程方式更新约束的常量属性?

© www.soinside.com 2019 - 2024. All rights reserved.