一直在四处寻找,但未能在这里找到答案:
是否有一种简单的方法来计算/查看使用NSString的drawInRect
方法(在子类UIView的drawRect
方法中)会产生多少行文本。
e.g。在以下代码段中:
[self.text drawInRect:titleRect withFont:[UIFont systemFontOfSize:15.] lineBreakMode:UILineBreakModeWordWrap alignment:UITextAlignmentCenter];
我如何计算这里会产生多少行文字?
谢谢!
答案 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字符。