我解析Json数据并将其设置在一些UILabel上,我想要的是当没有特定标签的文本时必须从UIView中删除,我尝试了2种方法但没有结果,因为标签有限制。 我试过的是:
将其帧设置为0,将高度约束设置为0
CGRect noFrame = _prepTime.frame;
noFrame.size.width = 0;
noFrame.size.height = 0;
[_prepTime setFrame:noFrame];
prepTimeHeight = 0;
但是UILabel的高度仍然存在,
我试过:
[_prepTime removeFromSuperView];
有了这个,UILabel被删除了,但界面发生变化,因为它有约束,删除UILabel我会破坏布局。
是否有任何方法可以从视图中删除UILabel,即使它有约束条件?
答案 0 :(得分:2)
如果您不想影响所有其他子视图,可以设置hidden
。
答案 1 :(得分:0)
使用布局约束时,编辑元素的框架不是一个好主意。相反,您应为IBOutlet property
添加NSLayoutConstraint
并将其链接到故事板中标签的高度限制,然后编辑NSLayoutConstraint
的常量值。
在你的viewcontroller中@implementation
:
@property IBoutlet NSLayoutConstraint *myLabelHeightConstraint;
以及稍后要隐藏标签时:
self.myLabelHeightConstraint.constant = 0;
[self.view layoutIfNeeded];