2013/03/18

iOS6で文字列の表示領域を取得 - [開発] - NSLineBreakMode

Google Maps SDK for iOSを使った地図上にApple Mapのようなピンの吹き出しを表示させるために、文字列の表示領域を取得しようとしていたら、iOS6からUILineBreakModeが変更(以前のENUMが非推奨)となっていたのでメモ。


まずはおなじみの、特定の文字列を表示される際にその文字列を表示するのに必要な表示領域を表示するには以下のようにする。

// 文字列
NSString *word = @"佐長商店";
// フォント
 UIFont *font = [UIFont fontWithName:@"Helvetica-Bold"size:16.0f];
// のサイズを取得
 CGSize size = [word sizeWithFont:font 
                         constrainedToSize:CGSizeMake(285, 20) 
                               lineBreakMode:NSLineBreakByWordWrapping];

iOS6から変更になったのが、lineBreakModeで指定しているENUMで以下のような指定と内容となっている。

NSLineBreakMode内容
NSLineBreakByWordWrapping表示領域内に、単語で折り返す(デフォルト指定)。
NSLineBreakByCharWrapping表示領域内に、文字で折り返す
NSLineBreakByClipping表示領域内に、文字で折り返す
NSLineBreakByTruncatingHead表示領域内に、前方が三点リーダ。例:...wxyz
NSLineBreakByTruncatingTail表示領域内に、後方が三点リーダ。例:abcd...
NSLineBreakByTruncatingMiddle表示領域に、中央が三点リーダ。例:ab...yz

参考サイト

NSLineBreakMode(UILineBreakMode)の仕様

Related Posts Plugin for WordPress, Blogger...

0 件のコメント:

コメントを投稿