如何UILabel
在iOS的界面构建器中制作多行?我尝试了UITextView
但它并不完全符合我的需求。
如何在标签中添加多行(文本)?
n
。而是将其设置为0(无穷大)。请在下面查看vijay的答案。
如何UILabel
在iOS的界面构建器中制作多行?我尝试了UITextView
但它并不完全符合我的需求。
如何在标签中添加多行(文本)?
n
。而是将其设置为0(无穷大)。请在下面查看vijay的答案。
Answers:
您可以使用numberOfLines
定义标签可以具有的最大行数的属性。默认情况下为1
。将其设置为0
意味着标签将具有无限行。
您可以在代码中执行此操作:
textLabel.numberOfLines = 5 // for example
或在Interface Builder中:
width
你的标签是什么?
点击Control+ Enter在Interface Builder / Storyboard中的UILabel中添加一行。
谢谢AppleVijay!
也可以调用sizeToFit,如下所示:
label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit];
高度将自动计算。
根据需要设置标签的宽度,然后使用IB将换行符设置为自动换行
或与这样的代码一起使用
我找到了解决方案。
只需添加以下代码即可:
textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;
将动态文本信息的行数设置为零,这在文本变化时很有用。
以编程方式(快速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
使用Inetrface Builder
注意:不需要设置Minimum Font Scale
,但是最好有一个最小比例因子以使文本适合标签框架。
textLabel.lineBreakMode = UILineBreakModeWordWrap;
textLabel.numberOfLines = 0;
CGSize size = [[[arrNewsFeed objectAtIndex:row] objectForKey:@"c"] sizeWithFont:[UIFont systemFontOfSize:14.0] constrainedToSize:CGSizeMake(188, CGFLOAT_MAX)
lineBreakMode:NSLineBreakByTruncatingTail];
textLabel.frame = (CGRect){.origin = cell.lblNewsDescription.frame.origin, .size = size};
如果将numberOfLines属性设置为0,则标签将自动调整为给定文本所需的行数。
我已经为此苦苦挣扎很长时间了。我只是希望标签文本出现在第二行。但是无论我做什么,都会溢出UILabel框。对我来说,更改大小检查器的自动调整大小是可行的。简单修复。
可能正在寻找类似的人会有所帮助。