numberOfLines=2 的 UILabel 使用啥约束高度? (使用 [NSString sizeWithFont...])
Posted
技术标签:
【中文标题】numberOfLines=2 的 UILabel 使用啥约束高度? (使用 [NSString sizeWithFont...])【英文标题】:What constraint height to use for UILabel with numberOfLines=2? (using [NSString sizeWithFont...])numberOfLines=2 的 UILabel 使用什么约束高度? (使用 [NSString sizeWithFont...]) 【发布时间】:2013-03-09 18:36:07 【问题描述】:对于行数有限的 UILabel,如何确定要在 [NSString sizeWithFont:constrainedToSize:...] 中使用的 constrainedToSize.height?
下面的约束高度是无限的(MAXFLOAT),但是当限制为 X 行时,标签的最大高度应该使用什么?
UILabel * label = [[UILabel alloc] init];
label.numberOfLines = 2;
label.text = @"Some really long text";
// what to use instead of MAXFLOAT?
CGSize constrainSize = CGSizeMake(285, MAXFLOAT);
CGSize size = [label.text
sizeWithFont: [UIFont boldSystemFontOfSize:17.0]
constrainedToSize:constrainSize
lineBreakMode:NSLineBreakByWordWrapping
];
非常感谢!
【问题讨论】:
你的代码是对的。你觉得它有什么问题? @matt 代码将返回适合文本的大小,需要的行数可能超过他正在寻找的 2 行。 constrainSize 高度为无穷大的想法是让标签可以增长到任意高度。如果您知道它只能是有限大小,请设置它。 【参考方案1】:如果您已经知道希望标签为 2 行,请使用:
CGFloat maxHeight = label.font.lineHeight * 2;
CGSize constrainSize = CGSizeMake(285, maxHeight);
【讨论】:
以上是关于numberOfLines=2 的 UILabel 使用啥约束高度? (使用 [NSString sizeWithFont...])的主要内容,如果未能解决你的问题,请参考以下文章
UILabel 的 sizeToFit/sizeThatFits 忽略 numberoflines 属性
UILabel 的 numberOfLines 在单元格中不起作用
UILabel numberoflines 和 font size 在缩小时自动设置