Swift 删除UIView后重置其他零部件的约束

Swift 删除UIView后重置其他零部件的约束,swift,xcode,uiviewcontroller,banner-ads,safearealayoutguide,Swift,Xcode,Uiviewcontroller,Banner Ads,Safearealayoutguide,我得到了一个横幅UIView,如果用户有NoAds功能,我想删除它 问题是在我删除横幅UIView后,我找不到一种方法来设置俯视图的约束,以包装ViewController的其余部分 这里有一些图片让你更好地理解 我使用removeFromSuperview()方法删除横幅UIView 在故事板上,我的底部约束设置为0,指向最近的邻居,即当时的UIView横幅。问题是,在我移除横幅UIView后,我想将上面的UIView的底部约束设置为0,指向SuperView。 提前谢谢。只要你能使用简单

我得到了一个横幅
UIView
,如果用户有NoAds功能,我想删除它

问题是在我删除横幅
UIView
后,我找不到一种方法来设置俯视图的约束,以包装
ViewController
的其余部分

这里有一些图片让你更好地理解

我使用
removeFromSuperview()
方法删除横幅
UIView

在故事板上,我的底部约束设置为0,指向最近的邻居,即当时的
UIView
横幅。问题是,在我移除横幅
UIView
后,我想将上面的UIView的底部约束设置为0,指向SuperView。


提前谢谢。

只要你能使用简单的解决方案

您可以使用
分发设置垂直
堆栈视图中的TopView、横幅
对齐填充

当其中一个堆栈视图项隐藏时,另一个将展开

见图片


如果您需要使用Constraint,您有
activate
deactivate
,然后调用
setNeedsLayout()

试试这个
NSLayoutConstraint.deactivate(myView.constraints)
我似乎找不到一个方法来帮助我。我希望顶部UIView的底部约束更改为0,但不朝向横幅UIView(已删除)。我希望它在SuperView的末尾变为0。好的,当您删除它们时,您可以尝试将固定高度约束发送到
banner UIView
,设置
myHeightConstraint.constant=0 removeFromSuperview()
这样做了!谢谢,我甚至不知道这个选项PI有一个静态AdManager类,它保存了一个包含所有横幅广告的数组。一旦用户购买,我就通过循环数组从superview中删除所有横幅。因为横幅都在堆栈视图中,所以它会自动工作。