備忘録 〜プログラミング〜

プログラミングに関する事をつらつらと、、

UILabelで自動改行してみた

UILabelで長い文字を指定しても途中で切れてしまうので、自動的に改行してくれるようにしてみた。
以下、ソースコード

UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
[label setFont[UIFont systemFontOfSize:11.f]];
[label setText:@"長い長い長い長い長い長い長い文字をここで指定する。"];
[label sizeToFit];
[label setLineBreakMode:NSLineBreakByWordWrapping];
[label setNumberOfLines:0];
[label setFrame:CGRectMake(0, 0, self.frame.size.width, label.frame.size.height)];
[label sizeToFit];
[self.view addSubview:label];

ポイントは、setLineBreakModeと、setNumberOfLines。あと、sizeToFit
sizeToFitは、setFrameの後で指定しないと、うまく改行されませんでした。
他にもUILabelの幅を計算して高さを算出する方法もあるようなので、そちらのほうがよければ、こちらなんかを参考に。


iPhoneでUILabelの高さ(height)を計算する方法 | 9ensanのLifeHack