可能重复:
如何获得高度NSAttributedString在一个固定的宽度
现在NSAttributedString是iOS中6可用布局的目的,我想知道如何计算下固定宽度的NSAttributedString所需的高度。 我在寻找的东西,这相当于的NSString的- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size
,但对于NSAttributedString。
为了计算NSAttributedStrings的图纸尺寸,有两种方法:
-
- (CGSize)size
不能被使用,因为它不带任何宽度考虑在内。 - 我想
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options context:(NSStringDrawingContext *)context
,但不知何故,不给我正确的高度。 我认为方法是马车。 如果我运行下面的代码,它给了我bounding size: 572.324951, 19.000000
忽略的200给定的宽度应该给我的东西像身高100。
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] init]; NSDictionary *attributes = @{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue" size:15], NSForegroundColorAttributeName : [UIColor blueColor]}; [attributedString appendAttributedString:[[NSAttributedString alloc] initWithString:@"Attributed String\n" attributes:attributes]]; [attributedString appendAttributedString:[[NSAttributedString alloc] initWithString:@"Attributed String\n" attributes:attributes]]; [attributedString appendAttributedString:[[NSAttributedString alloc] initWithString:@"Attributed String\n" attributes:attributes]]; [attributedString appendAttributedString:[[NSAttributedString alloc] initWithString:@"Attributed String\n" attributes:attributes]]; [attributedString appendAttributedString:[[NSAttributedString alloc] initWithString:@"Attributed String\n" attributes:attributes]]; CGRect frame = [attributedString boundingRectWithSize:CGSizeMake(200, 1000) options:0 context:nil]; NSLog(@"bounding size: %f, %f", frame.size.width, frame.size.height);
有可用于Mac OS X,但不能用于iOS的其他方法。