Objective-C
iOS
ios7

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

More than 3 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