隐藏UILabel而不占用任何空间

时间:2013-06-12 13:59:52

标签: ios objective-c

我知道隐藏UILabel的两种方法。我可以将alpha设置为0或将标签属性'hidden'设置为YES。那是

// UILabel *label = ...
label.alpha = 0.0f;

// or
label.hidden = YES;

然而,在这两种情况下,标签都会占用空间(宽度和高度)。

是否可以隐藏标签,使其不会占用任何垂直/水平空间?一种可能的方法是将宽度/高度设置为0我猜。但也许有更好的方法。

3 个答案:

答案 0 :(得分:5)

处理此问题的最简单方法是使用堆栈视图。将标签嵌入堆栈视图中,堆栈视图将在内部处理间距。可以根据需要调整对齐,间距等附加属性。确保在堆栈视图和相邻元素之间重新建立约束,因为一旦将视图添加到堆栈视图中,所有约束都被清除

答案 1 :(得分:4)

我刚刚遇到这个问题并发现你必须将文本设置为空字符串以使其不占用空间。 (iOS 9)

 label.text = @"";
 label.hidden = YES;

iOS有很多错误。

答案 2 :(得分:1)

那么你可以将帧高值设置为0来隐藏标签。[使用autolayout?如果你正确设置它就足够了]

如果没有自动布局,请将内容向下移动,这取决于以编程方式将下面内容的框架设置为新框架[将所有组件y value更改为yvalue-label.height]