1

我正在尝试将自动布局用于简单的界面。当删除视图时刷新自动布局

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

如果我只是做[image removeFromSuperview]那么图片下的所有内容都将其约束应用于超级视图的顶部而不是“商家描述”标签。

我试过只是更新框架,但显然这是不允许的。我试图使用不同的优先级标签来密码商家描述和VIP折扣,但显然这个选项在新版本的Xcode中没有了。

+0

而不是删除视图,请为其设置高度限制,并在您不想看到它时将其设置为0。其余的意见应该是相对于该图像的底部 –

+0

@GrzegorzKrukowski在生命周期中,最好将高度约束设置为2? – Ares

+0

有一个updateConstrains方法。 –

回答

0

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

IB constraint configuration

当您删除的图像来看,适当地改变约束的工作状态:

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

做反向如果图像视图已经恢复到视图。 N.B.确保在所有情况下在激活之前停用,以避免有关冲突的经典日志消息。