web-dev-qa-db-ja.com

ストーリーボードを使用して1つのTableViewに異なるカスタムセルを追加するにはどうすればよいですか?

ストーリーボードを使用して、1つのテーブルビューに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つ追加することができます。しかし、2つの異なるセルを追加することはできません。手伝ってくれませんか。

12
Bolot NeznaJu

テーブルビューの属性インスペクターで、「動的プロトタイプ」を選択し、その下でプロトタイプセルの数を選択します。各セルに異なる識別子を指定し、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...
}
31
Timothy Moose