我有一个标签,其中包含一个很大的描述。我希望标签继续在新线上增长。在图像中,标签以event_venue .....
开头even_venue ..标签现在有3个约束:
我想要实现的是使event_venue.width小于superview.width,但如果它有更多文本,它应该以新行显示。这是否可以使用autolayout?
答案 0 :(得分:4)
是的,这完全是可能的。我在这里看到的答案接近解决方案但不完整。这是一个在Storyboard中使用自动布局的解决方案,没有sizeToFit
或任何编码。您修改的步骤将是:
答案 1 :(得分:1)
我已经解决了类似的问题。我必须制作一个具有可变文本量的标签。这就是我的所作所为:
使用随机占位符文本填充标签,使其达到所需的最大形状。例如,如果您想要填充整个宽度并且最多可以容纳三行文本,则可以执行以下操作:
ABCDEFGHIJKLMNOPQRSTU
ABCDEFGHIJKLMNOPQRSTU
ABCDEFGHIJKLMNOPQRSTU
在代码中,使用setText设置标签的文本:
[self.myLabel setText:@" MyLabelText"];
这对我有用。你的情况可能有点不同,因为我没有改变超视图的宽度,听起来你可能就是这样。但是如果在标签上设置了宽度约束,那么我希望这也适用于您的情况。
答案 2 :(得分:1)
我有一个关于标签大小调整的类似问题,我发现对我有用的答案是:UILabel Auto Size Label to Fit Text。对于如何以编程方式调整标签大小的代码,这是一个很好的起始源。
我建议你还要从标签到superview的边缘添加一个水平拖尾自动布局约束。这样做,然后您可以摆脱当前的宽度约束。
答案 3 :(得分:1)
这是可以创建可扩展UILabel的可能步骤
答案 4 :(得分:0)
AutoLayout
方便您进行定位。我认为它不会给你自动扩展。您必须完全定义标签with
宽度和height
,否则您将在标签末尾看到点。因此,您可以使用UITextView
在屏幕上展开它。并设置textView.backgroundcolot = clearColor
。