强制 UILabel 显示 2 行
Force UILabel to display 2 lines
如果它有 space,我有 UILabel
显示单行。
但是,我需要强制它始终显示 2 行,即使有足够的 space 显示在 1 行[=] 27=].
稳健的方法是减少右间距限制并在所有可用设备上检查该条件,但也许有更简单的方法?
明确一点,我想要这个:
看起来像这样:
正如我提到的,现在标签通过约束绑定到 superview。
在 UILabel 文本的 InterfaceBuilder 设置中,按选项并在“Справочник”和“МКБ”之间输入。
或设置label.text = @"Справочник\nМКБ";
.
当然,在IB或code.[=13中设置yourLabel.numberOfLines = 2
或0
=]
您需要设置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=0
和 NSLineBreakByWordWrapping
以下代码可能对您有所帮助,您必须使标签的高度足以覆盖两行。
NSString *text = @"Какой-то Справочник";
self.Label.lineBreakMode = NSLineBreakByWordWrapping;
self.Label.numberOfLines = 2;
对于swift 4.2,您可以尝试使用以下方法:
label.numberOfLines = 2
label.lineBreakMode = NSLineBreakMode.byWordWrapping
如果它有 space,我有 UILabel
显示单行。
但是,我需要强制它始终显示 2 行,即使有足够的 space 显示在 1 行[=] 27=].
稳健的方法是减少右间距限制并在所有可用设备上检查该条件,但也许有更简单的方法?
明确一点,我想要这个:
看起来像这样:
正如我提到的,现在标签通过约束绑定到 superview。
在 UILabel 文本的 InterfaceBuilder 设置中,按选项并在“Справочник”和“МКБ”之间输入。
或设置label.text = @"Справочник\nМКБ";
.
当然,在IB或code.[=13中设置yourLabel.numberOfLines = 2
或0
=]
您需要设置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=0
和 NSLineBreakByWordWrapping
以下代码可能对您有所帮助,您必须使标签的高度足以覆盖两行。
NSString *text = @"Какой-то Справочник";
self.Label.lineBreakMode = NSLineBreakByWordWrapping;
self.Label.numberOfLines = 2;
对于swift 4.2,您可以尝试使用以下方法:
label.numberOfLines = 2
label.lineBreakMode = NSLineBreakMode.byWordWrapping