gpt4 book ai didi

ios - 如何在 iOS 6 中计算具有给定宽度的 NSAttributedString 的高度

转载 作者:IT王子 更新时间:2023-10-29 07:34:18 24 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
How to get height for NSAttributedString at a fixed width

现在 NSAttributedString 在 iOS 6 中可用。出于布局目的,我想知道如何计算固定宽度下 NSAttributedString 所需的高度。我正在寻找与 NSString 的 - (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size 等价的东西,但对于 NSAttributedString。

要计算 NSAttributedStrings 的绘图大小,有两种方法可用:

  1. - (CGSize)size 不能使用,因为它不考虑任何宽度。
  2. 我尝试了 - (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。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com