どうも。
数が可変なら、
表示内容のテキストの文字数も可変で、
それに応じた可変の高さにする。
なんてことも、
よくある話…(´・ω・`)
まぁ、
SNSのタイムライン的なヤツとか。
例のごとく、
utilのようなクラスに、
クラスメソッドとして用意するなら…。
+ (CGFloat)getTextHeight:(NSString *)text width:(CGFloat)width fontSize:(CGFloat)fSize {
CGSize boundSize = CGSizeMake(width, CGFLOAT_MAX);
CGSize textSize = [text sizeWithFont:[UIFont systemFontOfSize:fSize]
constrainedToSize:boundSize
lineBreakMode:NSLineBreakByWordWrapping];
return textSize.height;
}
CGSize boundSize = CGSizeMake(width, CGFLOAT_MAX);
CGSize textSize = [text sizeWithFont:[UIFont systemFontOfSize:fSize]
constrainedToSize:boundSize
lineBreakMode:NSLineBreakByWordWrapping];
return textSize.height;
}
フォントサイズだけでなく、
UIFontも引数に取った方がより汎用的かも。
sizeWithFontは、
iOS7ではdeprecatedだという話。
でも、
自分が今開発してるのでは、
iOS7で問題なく動いてるんだよな…。
iOS6もターゲットにしてあるから、
互換性が保たれてるのかな?
sizeWithFontの代わりには、
sizeWithAttributesを使えばいいらしい。
// 〜iOS6
[string sizeWithFont:font];
// iOS7
[string sizeWithAttributes:@{NSFontAttributeName:font}];
[string sizeWithFont:font];
// iOS7
[string sizeWithAttributes:@{NSFontAttributeName:font}];
そうなると、
上記のメソッドの中身も変わってくるんでしょうが…。
まぁ、
それは困ったその時にやるとしてw
それでは。
ちゃお☆
まこぴー。