UITableView中的两个不同的UITableViewCell

时间:2014-04-07 11:39:16

标签: ios objective-c uitableview custom-cell

我想创建一个包含2个部分行的TableView。 此表有2个部分(第一部分有1个单元格,第二部分有3个单元格)

注意:第一部分的细胞与第二部分的细胞不同。

这是我的代码,但没有工作!!!

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    NSArray *name = [_names objectForKey:key];
    static NSString *CellIdentifier2 = @"CustomerCell";

    if (indexPath.section == 0) {

        static NSString *CellIdentifier = @"myCell";
        FirstCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil) {
            cell = [[FirstCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        }
        // Configure the cell...
        cell.nameLable.text = [NSString stringWithFormat:@"blue"];
        cell.numberLable.text = [NSString stringWithFormat:@"1212432543"];
        cell.profileImage.image = [UIImage imageNamed: @"profile.png"];

        return cell;
//this part not working !!! XD

    }
    else if (indexPath.section >= 1) {

        CustomerCell *cell = (CustomerCell *)[self.table dequeueReusableCellWithIdentifier:CellIdentifier2];
        if (cell == nil)
        {
            NSArray *topLevelObject = [[NSBundle mainBundle] loadNibNamed:@"CustomerCell" owner:nil options:nil];

            for (id currentObject in topLevelObject) {
                if ([currentObject isKindOfClass:[CustomerCell class]]) {
                    cell = (CustomerCell *)currentObject;
                    break;
                }
            }
        }
        // Configure the cell...
        cell.titleLable.text = [name objectAtIndex:indexPath.row];
        return cell;
    }
    return nil;
}

customerCell &对于自定义单元格, FirstCell 会拖曳UITableViewCell。 当我要运行此代码时,只有第一部分没有工作且没有显示单元格而另一部分工作请指导我并告诉我我的错误在哪里。

2 个答案:

答案 0 :(得分:1)

试试这个:

FirstCell *cell = (FirstCell *)[tableView dequeueReusableCellWithIdentifier:strEvalIdentifier]; 
if (cell == nil)
{
   NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"FirstCell" owner:self options:nil];
   cell = [nib objectAtIndex:0];
} 

答案 1 :(得分:0)

尝试使用与第二个单元格中相同的代码。

if (indexPath.section == 0) {
FirstCell *cell = (FirstCell *)[self.table dequeueReusableCellWithIdentifier:CellIdentifier2];
    if (cell == nil)
    {
        NSArray *topLevelObject = [[NSBundle mainBundle] loadNibNamed:@"FirstCell" owner:nil options:nil];

        for (id currentObject in topLevelObject) {
            if ([currentObject isKindOfClass:[FirstCell class]]) {
                cell = (FirstCell *)currentObject;
                break;
            }
        }
// Configure the cell...
    cell.nameLable.text = [NSString stringWithFormat:@"blue"];
    cell.numberLable.text = [NSString stringWithFormat:@"1212432543"];
    cell.profileImage.image = [UIImage imageNamed: @"profile.png"];

    return cell;
    }