Ios 删除视图时刷新自动布局

Ios 删除视图时刷新自动布局,ios,cocoa-touch,autolayout,interface-builder,nslayoutconstraint,Ios,Cocoa Touch,Autolayout,Interface Builder,Nslayoutconstraint,我试图使用自动布局的一个简单的界面 有时,根据服务器接收到的信息,我们需要删除UIImageView(当没有图像显示时) 如果我只是执行[image removeFromSuperview]操作,那么图像下的所有内容都会将其约束应用到super视图的顶部,而不是“merchant description”标签 我试着只是更新帧,但显然这是不允许的。我试图用不同的优先级标签固定商户描述和VIP折扣,但显然在新版本的Xcode中该选项已不存在。您可以在代码中激活和停用约束。在IB中创建两个约束,一

我试图使用自动布局的一个简单的界面

有时,根据服务器接收到的信息,我们需要删除
UIImageView
(当没有图像显示时)

如果我只是执行
[image removeFromSuperview]
操作,那么图像下的所有内容都会将其约束应用到super视图的顶部,而不是“merchant description”标签


我试着只是更新帧,但显然这是不允许的。我试图用不同的优先级标签固定商户描述和VIP折扣,但显然在新版本的Xcode中该选项已不存在。

您可以在代码中激活和停用约束。在IB中创建两个约束,一个用于存在图像视图的布局,另一个用于不存在图像视图的布局。创建一个连接到每个约束的
IBOutlet
。取消选中“安装”框,无论你认为哪个不是默认的:

删除图像视图时,请适当更改约束的活动状态:

[imageViewPresentConstraint setActive:NO];
[imageViewAbsentConstraint setActive:YES];

如果图像视图曾经恢复到视图,则执行相反的操作N.B.请确保在所有情况下在激活前停用,以避免出现关于冲突的经典日志消息。

您可以在代码中激活和停用约束。在IB中创建两个约束,一个用于存在图像视图的布局,另一个用于不存在图像视图的布局。创建一个连接到每个约束的
IBOutlet
。取消选中“安装”框,无论你认为哪个不是默认的:

删除图像视图时,请适当更改约束的活动状态:

[imageViewPresentConstraint setActive:NO];
[imageViewAbsentConstraint setActive:YES];

如果图像视图曾经恢复到视图,则执行相反的操作N.B.在激活之前,确保在所有情况下都要停用,以避免出现关于冲突的经典日志消息。

不要删除视图,而是对其进行高度约束,并在不想查看时将其设置为0。其余视图应该是相对于该视图底部的image@GrzegorzKrukowski在生命周期中,什么时候最好将高度约束设置为2?有一种updateConstrains方法可用于此操作。与其删除视图,不如为其设置高度约束,并在不想查看视图时将其设置为0。其余视图应该是相对于该视图底部的image@GrzegorzKrukowski在生命周期中,什么时候最好将高度约束设置为2?对此有updateConstrains方法。