强制 UILabel 显示 2 行

Force UILabel to display 2 lines

如果它有 space,我有 UILabel 显示单行。

但是,我需要强制它始终显示 2 行,即使有足够的 space 显示在 1 行[=] 27=].

稳健的方法是减少右间距限制并在所有可用设备上检查该条件,但也许有更简单的方法?

明确一点,我想要这个:

看起来像这样:

正如我提到的,现在标签通过约束绑定到 superview。

在 UILabel 文本的 InterfaceBuilder 设置中,按选项并在“Справочник”和“МКБ”之间输入。

或设置label.text = @"Справочник\nМКБ";.

当然,在IBcode.[=13中设置yourLabel.numberOfLines = 20 =]

您需要设置numberOfLines

yourLabel.numberOfLines = 2

您可以通过在字符串中您想要的位置插入“\n”来强制标签显示两行文本。

或者您可以为标签设置一个恒定宽度以强制它始终保持恒定宽度(这将导致标签以两行显示文本,只要文本大于宽度) .请记住将允许的行数设置为 2。

第 1 步。将标签的行数设置为 2。
步骤 2. 将 "Vertical hugging priority" 设置为高 (1000)
第 3 步。右键单击您的标签并连接左侧的图标,然后选择 "Center Vertically"。
第 4 步. 右键单击​​您的标签并连接左侧的图标并设置 "Horizontal Spacing".
第 5 步。如果该文本是静态的,则按照 Igor 的建议进行操作,否则,在将文本分配给该标签后,只需将 @" " 替换为 @"\n"。例如。

NSString *text = @"Какой-то Справочник"; 
self.myLabel.text = [text stringByReplacingOccurrencesOfString:@" " withString:@"\n"];

或者直接设置self.myLabel.lineBreakMode = NSLineBreakByWordWrapping;

如果是固定文本,则选择 \n

如果它是动态文本,则设置宽度固定的自动布局,然后 numberoflines=0NSLineBreakByWordWrapping

以下代码可能对您有所帮助,您必须使标签的高度足以覆盖两行。

NSString *text = @"Какой-то Справочник";
self.Label.lineBreakMode = NSLineBreakByWordWrapping;
self.Label.numberOfLines = 2;

对于swift 4.2,您可以尝试使用以下方法:

label.numberOfLines = 2
label.lineBreakMode = NSLineBreakMode.byWordWrapping