私のアプリでは、tableView に表示するコンテンツが約 1000 あります。1 ~ 3 行の UILabel があるため、各コンテンツの高さは異なります。現在、tableView デリゲート関数で各セルの高さを計算して返します。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
そして、その計算方法は次のとおりです。
contentCell = (RSContentViewCell *)self.tmpCell;
UIFont *font = contentCell.myTextLabel.font;
width = contentCell.myTextLabel.frame.size.width + 30;
size = [contentStr sizeWithFont:font
constrainedToSize:CGSizeMake(width, CGFLOAT_MAX)
lineBreakMode:contentCell.myTextLabel.lineBreakMode];
height = size.height;
return height;
動作しますが、それらの高さを計算するのに約 0.5 秒かかるため、計算プロセス中にアプリが応答しないため、UX はあまり良くありません。では、これらのセルの高さを計算する正しい方法と正しい場所はどこですか?
アップデート
データはサーバーからのもので、テーブルビューに入ったときに要求されます。