使用numberOfLines = 2的UILabel使用什么约束高度? (使用[NSString sizeWithFont ...])

时间:2013-03-09 18:36:08

标签: iphone ios uiview nsstring uilabel

如何确定在[NSString sizeWithFont:constrainedToSize:...]中使用的constrainedToSize.height是否为行数有限的UILabel?

下面的约束高度是无限制的(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
               ];

非常感谢!

1 个答案:

答案 0 :(得分:2)

如果您已经知道您希望标签为2行,请使用:

CGFloat maxHeight = label.font.lineHeight * 2;
CGSize constrainSize = CGSizeMake(285, maxHeight);