如何从UITableViewCell加载多个单元格

时间:2014-04-09 08:11:42

标签: ios objective-c uitableview

我有一个表,我想从xib两个单元格加载。 在UITableViewCell xib文件中,我有两个单元格(两个部分,标签100和200),我想在第一行加载第一个视图(第一个单元格),在第二行加载第二个单元格。 这两个单元格都在xib文件中,如下所示: two cell from xib

这是我的代码:

#pragma mark Table View Data Source Methods
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 2;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 2;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {


    if (indexPath.section == 0) {

        CustomCell *cell = (CustomCell *)[self.table dequeueReusableCellWithIdentifier:@"myCell"];
        if (cell == nil)
        {
            NSArray *topLevelObject = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:nil options:nil];
            NSLog(@"%@",topLevelObject);
            cell = [topLevelObject objectAtIndex:0];
            NSLog(@"%@",cell);
        }
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
        return cell;
    }
    else if (indexPath.section == 1) {

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

            for (id currentObject in topLevelObject) {
                if ([currentObject isKindOfClass:[CustomCell class]]) {
                    cell2 = (CustomCell *)currentObject;
                    break;
                }
            }
        }
        cell2.selectionStyle = UITableViewCellSelectionStyleNone;
        return cell2;
    }
    return nil;        
}

我不知道我的错误在哪里,因为在运行代码时我只看到tableView中的第一个单元格

1 个答案:

答案 0 :(得分:0)

您正在使用来自XIB的第一个单元格= 0     cell = [topLevelObject objectAtIndex:0]; 因此,以同样的方式,您可以获得第1部分索引1处的第二个单元格     cell = [topLevelObject objectAtIndex:1];