我想根据我使用过的文字显示标签尺寸 uilabel行数。
lbl.numberoflines = 0;
但它只显示三行,然后显示......并非所有文字都显示出来。
当我给出超过3的行数时,它会在标签中显示该行。
感谢您的帮助
答案 0 :(得分:4)
试试这个
lbl.lineBreakMode = UILineBreakModeWordWrap;
lbl.numberOfLines = 0;
如果你想手动计算高度
lbl.numberOfLines = 0; // allows label to have as many lines as needed
lbl.text =@"xxxxxxxxxxxxxxxxxxxxxx";
CGSize labelSize = [ lbl.text sizeWithFont: lbl.font constrainedToSize:CGSizeMake(300, 300) lineBreakMode:NSLineBreakByWordWrapping];
// set the frame of labels here
否则你可以直接放在属性
中
<强> swift3 强>
lbl.lineBreakMode = .byWordWrapping
lbl.numberOfLines = 0
// allows label to have as many lines as needed
lbl.text = "xxxxxxxxxxxxxxxxxxxxxx"
var labelSize = lbl.text.size(with: lbl.font, constrainedToSize: CGSize(width: 300, height: 300), lineBreakMode: .byWordWrapping)
// set the frame of labels here }
答案 1 :(得分:1)
答案 2 :(得分:0)
试试这个
lbl.lineBreakMode = UILineBreakModeWordWrap;
lbl.numberOfLines = 0;
[lbl sizeTofit];
答案 3 :(得分:0)
使用此方法。可以帮忙
-(CGSize)getLabelSize:(NSString *)text
{
UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:14.0];
CGSize constraintSize = CGSizeMake(300.0f, MAXFLOAT);
CGSize labelSize = [text sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
return labelSize;
}
答案 4 :(得分:0)
所有答案可能都有帮助。但是使用旧方法。
您无法在视图中添加约束吗?
设置布局约束会非常容易,然后就可以了。