1

一直在四处寻找,但无法在这里找到答案:

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

例如在以下片段中:

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

我将如何计算这里将产生多少行文本?

谢谢!

4

2 回答 2

2

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

于 2012-10-24T22:06:13.147 回答
-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 字符。

于 2012-10-24T22:28:15.150 回答