如何获取UILabel截断的字符串大小?

时间:2011-02-11 21:25:26

标签: objective-c uikit nsstring

我需要找到将在UILabel中绘制的字符串的屏幕尺寸(CGSize)。我知道我可以使用:

-(CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode

但是,要查找字符串的大小,它不会考虑UILabel允许您指定的最大行数。

如果我的UILabel将numberOfLines设置为2,并且它收到一个被截断的长字符串,那么如何找到将由UILabel绘制的字符串的大小(CGSize)?

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以获取字体的lineHeight属性并将其乘以行数,然后将其作为constrainedToSize:参数的最大高度输入。如下所示:

UIFont *font = getFont();
CGFloat maxHeight = font.lineHeight * label.numberOfLines;
CGFloat maxWidth = getWidth();
CGSize size = [label.text sizeWithFont:font constrainedToSize:(CGSize){maxWidth, maxHeight} lineBreakMode:label.lineBreakMode];
相关问题