在我的应用程序中,它有大约一千个内容要显示在 tableView 中。每个内容都有不同的高度,因为其中有一到三行 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 秒,所以用户体验不是很好,因为在计算过程中应用程序将没有响应。那么计算这些细胞高度的正确方法是什么,正确的位置在哪里?
更新
数据来自服务器并在进入表视图时请求。