【发布时间】:2016-04-08 02:53:10
【问题描述】:
我为联系信息屏幕堆叠了很多标签。如果任何标签是空的,我希望将它们的高度归零并且不占用空间以避免屏幕上出现空白空间。但是,我在情节提要中创建了屏幕,并且为标签分配了高度和 y 值。
这是我一直试图用来改变标签高度但无法使其工作的代码。也许它被设计为仅适用于以编程方式创建的标签,并且故事板设置会覆盖我在这里所做的。
NSString *string = @"some text";
CGSize maximumLabelSize = CGSizeMake(280,1000);
// use font information from the UILabel to calculate the size
CGSize expectedLabelSize = [string sizeWithFont:myLabel.font constrainedToSize:maximumLabelSize lineBreakMode:NSLineBreakByWordWrapping];
// create a frame that is filled with the UILabel frame data
CGRect newFrame = myLabel.frame;
// resizing the frame to calculated size
newFrame.size.height = expectedLabelSize.height;
// put calculated frame into UILabel frame
myLabel.frame = newFrame;
如果故事板中创建的标签为空,是否有办法将其高度归零?
【问题讨论】:
-
你可以使用堆栈视图吗?文本如何变化?如果您可能没有那么多文本,为什么还要有固定数量的标签?
-
首先使用自动布局。以下链接中的答案可能会有所帮助。 stackoverflow.com/a/25898949/1612489
-
标签是姓名、头衔、第一行地址、第二行地址、城市状态、邮政编码、电子邮件...垂直堆叠在名片上。但是,如果用户没有填写标题或地址行 2 或电话号码,我不希望那里有空白。我也试图避免标题:带有空格。只想显示标题或电子邮件地址(如果存在),否则什么也没有。支持 ios8,所以我认为可以取消堆栈视图。
-
你可以用一个标签做到这一点
标签: ios objective-c storyboard uilabel