1. ホーム
  2. objective-c

[解決済み] iOS 7 sizeWithAttributes: sizeWithFont:constrainedToSize の代替。

2022-06-29 03:24:35

質問

iOS 7 の新しいメソッド sizeWithAttributes から、複数行のテキスト CGSize を返すにはどうしたらよいでしょうか。

sizeWithFont:constrainedToSizeと同じ結果を出すようにしたいのですが。

NSString *text = @"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus eu urna quis lacus imperdiet scelerisque a nec neque. Mauris eget feugiat augue, vitae porttitor mi. Curabitur vitae sollicitudin augue. Donec id sapien eros. Proin consequat tellus in vehicula sagittis. Morbi sed felis a nibh hendrerit hendrerit. Lorem ipsum dolor sit."

CGSize textSize = [text sizeWithAttributes:@{ NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Light" size:16.0] }];

このメソッドは1行分の高さしか出しません。

どのように解決するのですか?

これを試してみてください。

NSDictionary *attributes = @{NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeue" size:14]};
// NSString class method: boundingRectWithSize:options:attributes:context is
// available only on ios7.0 sdk.
CGRect rect = [textToMeasure boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX)
                                          options:NSStringDrawingUsesLineFragmentOrigin
                                       attributes:attributes
                                          context:nil];