まゆたまガジェット開発逆引き辞典

電子工作やプログラミングのHowtoを逆引き形式で掲載しています。作りたいモノを決めて学んでいくスタイル。プログラマではないので、コードの汚さはお許しを

カスタムセルでUILabelの文字数に合わせてセルの高さを変える

TableViewでカスタムセルを使ったときに、UILabelの文字数に合わせてセルの高さを変えるという処理をしたときにハマったのでメモ。

基本的にはこれ9/16修正しました:iOS5のTwitter.frameworkを使ってつぶやきをカスタムテーブルで表示する - ガジェット充まゆたまのiPhone開発とかいろいろ逆引きメモと変わらないんですが、付け足しがあるのでそこだけ。

追加1点目。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
...
//追加、ラベルの高さをテキストの量に合わせて調整する
    [textLabel sizeToFit];

2点目、以下すべて。

//セルの高さをUILabelに合わせて設定
- (CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath {
    
    NSString *newcellHeight = [tweetTextArray objectAtIndex:indexPath.row];
	//CGSizeMakeの5000は大きければ適当な値でOK
    CGSize size = [newcellHeight sizeWithFont:[UIFont systemFontOfSize:12.0] constrainedToSize:CGSizeMake(170, 5000) lineBreakMode:UILineBreakModeWordWrap];
    
    //+45はマージン
    	return size.height +45; 
}