NSAttributedString多行给出错误的高度?

Pri*_*tri 5 nsattributedstring ipad ios ios6

我想计算NSAttributedString Multiline的高度.单线工作正常(意味着从高处减去前导).但如果文本是多行的,则它与单行相同.

NSMutableParagraphStyle *titleParagraphStyle = [[NSMutableParagraphStyle alloc] init];
titleParagraphStyle.lineHeightMultiple = 0.9f;
titleParagraphStyle.lineBreakMode = NSLineBreakByWordWrapping;

CGSize constrainedSize = CGSizeMake(TOUNameWidth, MAXFLOAT); 

NSDictionary *attributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                                      TOUNameFont, NSFontAttributeName,
                                      titleParagraphStyle, NSParagraphStyleAttributeName,
                                      nil];

NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString: name attributes:attributesDictionary];


CGRect rect = [string boundingRectWithSize:constrainedSize options:NSStringDrawingUsesFontLeading context:nil];

NSLog(@"rect is %f",rect.size.height);
Run Code Online (Sandbox Code Playgroud)

Pat*_*her 5

根据boundingRectWithSize:options:context:您的文档需要添加NSStringDrawingUsesLineFragmentOrigin

如果未指定NSStringDrawingUsesLineFragmentOrigin,则矩形的高度将被忽略,并且该操作被视为单行渲染。(由于存在错误,iOS 6上的宽度也被忽略。)