UITableView行高崩溃

rev*_*kpi 1 iphone ios

在我的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;
}
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

tol*_*orf 7

您无法cellForRowAtIndexPath在方法内部使用单元格heightForRowAtIndexPath,因为单元格尚未存在.它们将在设定高度后创建.

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