我正在尝试将Auto Layout用于简单的界面。
有时,根据服务器收到的信息,我们需要删除UIImageView
(当没有要显示的图像时)。
如果我只是做[image removeFromSuperview]
,那么图像下的所有内容都会将其约束应用于超级视图的顶部,而不是“商家描述”标签。
我尝试过更新框架,但显然不允许这样做。我尝试使用不同的优先级标签对商家描述和VIP折扣进行PIN码,但显然该选项在新版Xcode中消失了。
答案 0 :(得分:0)
您可以在代码中激活和停用约束。在IB中创建两个约束,一个用于存在图像视图的布局,另一个用于没有它。创建连接到每个约束的IBOutlet
。取消选中“已安装”框,无论您认为哪个不是默认值:
删除图像视图时,请相应地更改约束的活动状态:
[imageViewPresentConstraint setActive:NO];
[imageViewAbsentConstraint setActive:YES];
如果图像视图已恢复到视图,请执行相反操作。 N.B。请确保在所有情况下都要在激活前停用,以避免出现有关冲突的经典日志消息。