"界面"构建器中的iOS多行标签

Sam*_*nen 125 objective-c line-breaks uilabel ios swift

如何UILabel在iOS界面构建器中创建多行?我试过了,UITextView但它不太适合我的需要.

如何在标签中添加多行(文本)?

aka*_*kyy 170

你必须分配numberOfLines财产.你可以通过代码来做到这一点:

textLabel.numberOfLines = 5 // for example
Run Code Online (Sandbox Code Playgroud)

或者通过Interface Builder: 在此输入图像描述

  • 好吧,我现在得到了它,增加了它的高度.谢谢! (8认同)
  • 什么是你的标签的"宽度"? (3认同)
  • 另请参阅此答案,该答案解释了如何在IB中键入多行标签:http://stackoverflow.com/a/992511/893113 (2认同)

use*_*894 112

Control+ Enter在Interface Builder/Storyboard中的UILabel中添加一行.

  • 好一个.但我想,"Q"是不必要的 (14认同)
  • 谢谢,这就是我想要做的:) (2认同)

Bog*_*dan 47

谢谢AppleVijay!

也可以调用sizeToFit,如下所示:

label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit];
Run Code Online (Sandbox Code Playgroud)

高度将自动计算.

  • 注意:自iOS6起,UILineBreakModeWordWrap已弃用.使用[label setLineBreakMode:NSLineBreakWordWrapping]; 代替. (11认同)
  • 缺少"By".label.lineBreakMode = NSLineBreakByWordWrapping (5认同)

Vij*_*com 11

设置标签的宽度,因为你需要小,然后使用IB设置换行到自动换行

或使用这样的代码

我找到了解决方案.

只需添加以下代码:

textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;
Run Code Online (Sandbox Code Playgroud)


Kru*_*nal 5

将动态文本信息的行数设置为零,这在文本变化时很有用。

以编程方式(快速3)

var label = UILabel()
let stringValue = "iOS\nmultiline\nlabel\nin\nInterface\nbuilder"
label.text = stringValue
label.numberOfLines = 0 // Set 0, if number of lines not specified.
label.lineBreakMode = .byTruncatingTail // or .byWrappingWord
label.minimumScaleFactor = 0.8 . // It is not required but nice to have a minimum scale factor to fit text into label frame
Run Code Online (Sandbox Code Playgroud)

使用Inetrface Builder

在此处输入图片说明

注意:不需要设置Minimum Font Scale,但是最好有一个最小的比例因子以使文本适合标签框架。