如何使用Storyboard在一个TableView中添加不同的自定义单元格?

时间:2013-07-25 16:14:16

标签: xcode uitableview storyboard custom-cell

我想通过使用故事板在一个Tableview中添加2个或更多不同的自定义单元格。 我知道如何在没有故事板的情况下添加不同的细胞。我总是这样做:

static NSString *CellIdentifier = @"Cell";
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
//pictureCell = [[DetailPictureCell alloc]init];//(DetailPictureCell *)[tableView dequeueReusableCellWithIdentifier: CellIdentifier];
pictureCell.header = true;
[pictureCell setHeader];
if (cell == nil) {
    if ([indexPath row] == 0) {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"HeaderAngebotViewCell" owner:self options:nil];
        NSLog(@"New Header Cell");
}
    if([indexPath row] ==1){
    NSArray *nib = [[NSBundle mainBundle]loadNibNamed:@"productCell" owner:self options:nil];
        cell = [nib objectAtIndex:0];
}

现在我的问题是:我如何用故事板做到这一点? 可以添加一个自定义单元格。但我不能添加两个不同的细胞。你能帮帮我吗?

1 个答案:

答案 0 :(得分:31)

在表格视图的属性检查器中,选择“动态原型”,然后选择原型单元格的数量。为每个单元格提供不同的标识符,并在cellForRowAtIndexPath中使单元格出列时,使用基于indexPath的相应标识符。

enter image description here

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *identifier;
    if (indexPath.row == 0) {
        identifier = @"OneCellId";
    } else if (indexPath.row == 1) {
        identifier = @"OtherCellId";
    }
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];

    //configure cell...
}