强制UILabel显示2行

时间:2016-07-11 13:12:36

标签: ios objective-c autolayout uilabel

如果UILabel有空格,我会StringBuilder显示单行。

但是,我需要强制它始终显示 2行,即使有足够的空间在 1行中显示它。

强有力的方法是减少右间距约束并在所有可用设备上检查这种情况,但是可能有更简单的方法吗?

要明确,我想要这个:enter image description here

看起来像这样:enter image description here

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

7 个答案:

答案 0 :(得分:9)

步骤1.将标签的行数设置为2 步骤2.将“垂直拥抱优先级”设置为高(1000)
步骤3.右键单击标签并连接左侧的图标,然后选择“垂直居中” 步骤4.右键单击标签并连接左侧的图标并设置“水平间距” 步骤5.如果该文本是静态的,则按照建议的Igor进行操作,否则,在将文本分配给该标签后,只需用@“\ n”替换@“”。例如。

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

或者只设置self.myLabel.lineBreakMode = NSLineBreakByWordWrapping;

答案 1 :(得分:7)

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

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

当然,在 IB 代码中设置yourLabel.numberOfLines = 20

答案 2 :(得分:4)

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

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

答案 3 :(得分:2)

您需要设置numberOfLines

yourLabel.numberOfLines = 2

答案 4 :(得分:2)

您可以强制标签显示两行文字,并在字符串中所需的位置插入“\ n”。

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

答案 5 :(得分:2)

如果是固定文字,请转到\n

如果是动态文字,请转到设置固定宽度的自动布局,然后numberoflines=0NSLineBreakByWordWrapping

答案 6 :(得分:1)

对于Swift 4.2,您可以尝试使用-

title.numberOfLines = 2
title.lineBreakMode = NSLineBreakMode.byWordWrapping

,其中标题是您的标签。 这对我有用。