Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSAttributedString多行给出错误的高度?_Ios_Ipad_Ios6_Nsattributedstring - Fatal编程技术网

Ios NSAttributedString多行给出错误的高度?

Ios NSAttributedString多行给出错误的高度?,ios,ipad,ios6,nsattributedstring,Ios,Ipad,Ios6,Nsattributedstring,我想计算NSAttributedString多行的高度。对于单行线,它工作正常(意味着它减去从高度开始的引线)。但是,如果文本是多行的,则给出的结果与单行相同 NSMutableParagraphStyle *titleParagraphStyle = [[NSMutableParagraphStyle alloc] init]; titleParagraphStyle.lineHeightMultiple = 0.9f; titleParagraphStyle.lineBreakMode =

我想计算NSAttributedString多行的高度。对于单行线,它工作正常(意味着它减去从高度开始的引线)。但是,如果文本是多行的,则给出的结果与单行相同

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);

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

如果未指定NSStringDrawingUserLineFragmentOrigin,则 矩形的高度将被忽略,操作将被视为 单线渲染。(由于一个bug,iOS上的宽度也被忽略。) (六)