Posted at

まとまってなかったので備忘録的に纏めておく sizeWithFont -> sizeWithAttributes

More than 5 years have passed since last update.

Qiitaとかでまとまってるかなーって思ってたけど見当たらなかったので。まとめてみましたw


test.m

 CGSize captionSize = [caption sizeWithFont:[UIFont boldSystemFontOfSize:14] constrainedToSize:CGSizeMake(160, 200) lineBreakMode:UILineBreakModeWordWrap];


というのは、fontのところと、lineBrakeModeとかのparagraphに別けられるので


test.m

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];

paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
NSDictionary *attributeDic = @{NSFontAttributeName:[UIFont boldSystemFontOfSize:14],
NSParagraphStyleAttributeName:paragraphStyle};

CGSize captionSize = [caption boundingRectWithSize:CGSizeMake(160, 200)
options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine
attributes:attributeDic
context:nil].size;


とかに出来ますね。 基本的に fontとparagraphに別れて「細かく」調整出来る様になった。ということですね。便利便利。

ついでに似たようなものとしては

drawInRect の withFont ってのもありますね


test.m

[caption drawInRect:f withFont:[UIFont boldSystemFontOfSize:14] lineBreakMode:UILineBreakModeWordWrap alignment:UITextAlignmentCenter];


これもattributesに変更なので


test.m

NSMutableParagraphStyle *textStyle = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];

textStyle.lineBreakMode = NSLineBreakByWordWrapping;
textStyle.alignment = NSTextAlignmentCenter;
UIFont *textFont = [UIFont boldSystemFontOfSize:14];
[caption drawInRect:f
withAttributes:@{NSFontAttributeName:textFont,
NSParagraphStyleAttributeName:textStyle}];

こんな感じに。

まー、使える人は「もう知ってるよ m9」ってところなんでしょうけどたまに忘れてググって「あれ? なんだっけ?」ってなってしまう健忘症なおいら用の

備忘録

でありました。

にんともかんとも にんにん(おい、おっさんw