1

在我的 iPhone 应用程序中,我有四种类型的单元格。每个单元格都有自己的高度。我想为每个表格视图单元格设置行的高度,但它在此方法中崩溃:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
    NSLog(@"%@", cell);
    if([cell.reuseIdentifier isEqualToString:PastEventWICellIdentifier]){
        return 56;
    }
    if([cell.reuseIdentifier isEqualToString:PastEventWOICellIdentifier]){
        return 56;
    }
    if([cell.reuseIdentifier isEqualToString:EventWICellIdentifier]){
        return 112;
    }
    if([cell.reuseIdentifier isEqualToString:EventWOICellIdentifier]){
        return 112;
    }
    return 56;
}

我该如何解决这个问题?

4

2 回答 2

7

您无法cellForRowAtIndexPath在方法内部使用单元格heightForRowAtIndexPath,因为单元格还没有。它们将在设置高度后创建。

您可以使用 . 根据单元格的位置设置单元格的高度indexPath.row

于 2013-05-29T14:49:21.540 回答
0

您不能使用 method cellForRowAtIndexPath,此方法之前已调用,cellForRowAtIndexPath因此单元格不存在。heightForRowAtIndexPath您应该有一个在调用时已经计算出的高度列表。请记住不要在 tableview 中加载所有列表,因为此方法 ( heightForRowAtIndexPath) 加载 tableview 需要更长的时间...

于 2013-05-29T18:30:28.267 回答