2013-07-23 15 views
5

Ich möchte die Höhe von NSAttributedString Multiline berechnen. Es funktioniert gut für einzelne Zeile (bedeutet, es ist minus der führenden von der Höhe). Wenn der Text jedoch mehrzeilig ist, gibt er dasselbe wie eine einzelne Zeile aus.NSAttributedString Multiline mit falscher Höhe?

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

Antwort

4

Gemäß der Dokumentation von boundingRectWithSize:options:context: müssen Sie NSStringDrawingUsesLineFragmentOrigin

hinzufügen Wenn NSStringDrawingUsesLineFragmentOrigin nicht angegeben, die Rechtecks ​​Höhe ignoriert und den Betrieb als einzeilig Rendering sein. (Aufgrund eines Fehlers wird die Breite auch unter iOS 6.) ignoriert.