iOS(iPhone,iPod,iPad)アプリの開発に関する小ネタ集です。徳島大学でアプリ開発を行っているmake.appが運営しています。make.app公式サイト http://app.ias.tokushima-u.ac.jp/

ツイッタークライアンとのようにツイートの内容によってUITableViewCellの高さを動的に変化させたいときがあります。
簡単に以下に示します。


UITableViewCellクラス

/**
 * セルの高さを算出します。
 *
 * @param text 算出基準となるテキスト。
 *
 * @return 高さ。
 */
+ (CGFloat)calcHeight:(NSString*)text
{
        const CGFloat defaultCellHeight = 100;
        const CGFloat defaultTextHeight = 5;
        
        UIFont* font     = [UIFont systemFontOfSize:16];
        CGSize  size     = CGSizeMake( 230, 1000 );
        CGSize  textSize = [text sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeCharacterWrap];
        //    NSLog(@"height:%lf",defaultCellHeight + ( textSize.height - defaultTextHeight ));
        // デフォルトのセル高さ+
        return defaultCellHeight + ( textSize.height - defaultTextHeight );
}


UITableViewControllerを継承したクラス

// テーブルビューの高さを設定するメソッド
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return [UITableViewCell calcHeight:text];
}

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

メンバーのみ編集できます