我需要找到将在UILabel中绘制的字符串的屏幕尺寸(CGSize)。我知道我可以使用:
-(CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode
但是,要查找字符串的大小,它不会考虑UILabel允许您指定的最大行数。
如果我的UILabel将numberOfLines设置为2,并且它收到一个被截断的长字符串,那么如何找到将由UILabel绘制的字符串的大小(CGSize)?
谢谢!
答案 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];