查看NSString drawInRect将使用多少行的简单方法?

时间:2012-10-24 22:02:34

标签: iphone ios uiview nsstring drawrect

一直在四处寻找,但未能在这里找到答案:

是否有一种简单的方法来计算/查看使用NSString的drawInRect方法(在子类UIView的drawRect方法中)会产生多少行文本。

e.g。在以下代码段中:

    [self.text drawInRect:titleRect withFont:[UIFont systemFontOfSize:15.] lineBreakMode:UILineBreakModeWordWrap alignment:UITextAlignmentCenter];

我如何计算这里会产生多少行文字?

谢谢!

2 个答案:

答案 0 :(得分:2)

使用NSString sizeWithFont:constrainedToSize:lineBreakMode:方法确定大小。传入的CGSize应该具有所需的宽度和高度非常高的值。

答案 1 :(得分:-4)

我最终得到了一些自定义计算,因为sizeWithFont无法与自定义字体一起正常工作。一些粗鲁但有效的方式:

NSString *text = post.content;
int cntLB = [[text componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] count];
int numLines = [text length]/38+cntLB/2;

其中38 es某些阈值参数取决于文本而cntLB / 2指的是双\ r \ n字符。