隐藏UILabel而不占用任何空间

kuk*_*das 1 objective-c ios

我知道有两种隐藏方式的方法UILabel。我可以将alpha设置为0,也可以将标签属性“ hidden”设置为YES。那是

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

// or
label.hidden = YES;
Run Code Online (Sandbox Code Playgroud)

但是,在两种情况下,标签都会占用空间(其宽度和高度)。

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

Mat*_*ala 5

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

 label.text = @"";
 label.hidden = YES;
Run Code Online (Sandbox Code Playgroud)

iOS有很多错误。


小智 5

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


Lit*_*T.V 1

那么你可以将框架高度值设置为0来隐藏标签。【使用自动布局?如果你设置得当的话这可能就足够了]

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