Iphone 根据行数计算单元格高度?

Iphone 根据行数计算单元格高度?,iphone,objective-c,uitableview,uilabel,row-height,Iphone,Objective C,Uitableview,Uilabel,Row Height,我想使用(CGFloat)tableView:(UITableView*)tableView heightforrowatinexpath:(nsindepath*)indepath创建一个自定义UITableView单元格高度 我试图通过将textLabel中的行数乘以每行的高度,然后为字幕添加10.0f来获得UITableViewCell的高度。我正在使用以下代码并获得exc\u bad\u access()。为什么? - (CGFloat)tableView:(UITableView *)

我想使用
(CGFloat)tableView:(UITableView*)tableView heightforrowatinexpath:(nsindepath*)indepath创建一个自定义UITableView单元格高度

我试图通过将
textLabel
中的行数乘以每行的高度,然后为字幕添加
10.0f
来获得
UITableViewCell
的高度。我正在使用以下代码并获得
exc\u bad\u access()
。为什么?

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return ([[[tableView cellForRowAtIndexPath:indexPath] textLabel] numberOfLines] * [[[[tableView cellForRowAtIndexPath:indexPath] textLabel] font] lineHeight]) + 10.0;
    //return kRowHeightiPod; //A constant value for a sanity check
}

在得到单元之前,需要计算它的高度。你刚刚让计算它的高度取决于得到细胞。您已经创建了一个无限递归

您需要找到另一种方法来进行计算,可能是通过检查要添加到表单元格的数据,而不是直接查询表单元格

另外,请注意,
numberOfLines
表示文本标签能够显示的行数,但如果没有足够的内容,它可能会显示较少的行数。换句话说,即使只显示一行文本,
numberOfLines
也会返回两行,如果这是文本标签能够显示的最大行数


您可能需要使用其中一个来计算要在单元格中显示的文本的高度。

是否设置标签上的行数?因为这会给你一个默认答案,而不是与你正在使用的文本匹配的行数


我认为最有可能导致崩溃的原因与文本标签有关。尝试在可执行文件的环境变量中将NSZombieEnabled设置为YES,日志将告诉您释放后调用的对象类型…

看看这个问题。如果你看答案的第二部分,我相信你会找到解决办法@Aaron-我相信它应该更简单。我不必为我的单元格重新定义rect。我应该能够简单地计算高度的基础上的行数。我试图得到我的行高和行数的浮点值。我想最终,这个解决方案将被证明是最简单的,你还没有一个单元格rect。