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

标签 iphone objective-c uitableview uilabel row-height

我想使用 (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 自定义 UITableViewCell 高度。

我试图通过将 textLabel 中的行数乘以每行的高度然后添加 10.0f 来获取 UITableViewCell 的高度 为副标题。我正在使用以下代码并获取 exc_bad_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 也会返回两行,前提是这是文本标签能够显示的最大行数。

您可能想要使用 NSString UIKit additions 之一计算要在单元格中显示的文本文本的高度。

关于iphone - 根据行数计算单元格高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3859515/

相关文章:

iphone - 在运行时在 iPhone 上解释 Objective C 脚本?

iphone - Objective-C/Cocoa Touch 中的 HTML 字符解码

iphone - 以编程方式使用 iPhone 发送 PDU 格式的串联短信

ios - 我无法从 JSON 获取我的数组以加载到 UITableView

ios - 在选择一行之前,函数无法正常工作

iOS : push notification badge count not increase in this payload formate

ios - 无法设置 SKView backgroundColor

ios - (Objective-C) pageView中的viewController在来回分页时得到 "stuck"

objective-c - 如何在 Objective-C 中创建一个空数组,并为它一个一个赋值?

objective-c - 使用 UITableView 和 GCD 减少延迟