一个UITableView中有两种不同的Cell Type

时间:2011-05-22 18:23:23

标签: iphone cocoa-touch uitableview

大家好,我对如何在一个UITableView中使用两个不同的Cell Type有两个部分非常困惑。第一部分应该返回一个大的Cell,有很多文本,另一部分应该返回三个单元格,以导航到其他视图。我试过这样的话:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    //NSUInteger section;
    static NSString *CellIdentifier1 = @"CellIdentifier";
    static NSString *CellIdentifier2 = @"Cell";

    if (indexPath.section == 0) {

        CustomTableCell *cell = (CustomTableCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier1];
        if (cell == nil)
        {
            [[NSBundle mainBundle] loadNibNamed:@"CustomTableCell" owner:self options:nil];     cell = [self customTableCell];
            [self setCustomTableCell:nil];
        }
        return cell;
    }
    else if (indexPath.section == 1) {

            cTableViewCell *cell = (cTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier2];
            if (cell == nil)
            {
                [[NSBundle mainBundle] loadNibNamed:@"cTableViewCell" owner:self options:nil];
                cell = [[cTableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier2];
                [self setCustomTableCell:nil];
            }
            // Configure the cell...
            NSUInteger row = [indexPath row];
            cell.textLabel.text = [array objectAtIndex:row];
            return cell;            
        }
    return cell;
}

我在这里的部分设置了单元格的高度:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSUInteger section;
    if (section == 0) {
        return [indexPath row] + 80;
    }
    else 
    {
        return [indexPath row] + 44;
    }

}

我收到此错误:'cell'unclalared(首先使用此功能)。 :(我真的希望你能帮助我。提前致谢

1 个答案:

答案 0 :(得分:4)

tableView:cellForRowAtIndexPath:结尾处,将其设为return nil;而不是return cell;