Tableviewで2つ以上のcustom cellを使う!!

平成27年6月24日(水曜日)

  1. storyboard上で、prototype cellsを2に設定。
  2. 1のセル style subtitle “Cell1
  3. 2のセル style custom “Cell2”
  4. File New uitableviewcell “DetailTableViewCell”  Create
  5. 2のセル パーツのリンク @synthesize
  6. tableView cellForRowAtIndexPath

[objc]
//カスタムセル追加
– (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
//- (DetailTableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier1 = @"Cell1";
static NSString *CellIdentifier2 = @"Cell2";
BOOL YES_NO;

if(indexPath.row == 0) {
DetailTableViewCell *cell = (DetailTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier2];

if (cell == nil) {
cell = [[DetailTableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier2];
}
YES_NO = [[self query_On_off_flag:[_detailItem valueForKey:@"name"]] boolValue];
//NSLog(@"query_On_off_flag = %@",YES_NO ? @"YES":@"NO");

if (YES_NO) {
cell.on_off_switch.on = YES;
} else {
cell.on_off_switch.on = NO;
}
return cell;
}
else {
UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier1];

if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier1];
}
switch (indexPath.row) {
case 1:
cell.textLabel.text = @"うりの一言";
cell.detailTextLabel.text = [[_detailItem valueForKey:@"point"] description];
break;
case 2:
cell.textLabel.text = @"温泉郷";
cell.detailTextLabel.text = [[_detailItem valueForKey:@"part"] description];
break;
case 3:
cell.textLabel.text = @"営業形態";
cell.detailTextLabel.text = [[_detailItem valueForKey:@"t_operation"] description];
break;
default:
cell.textLabel.text = @"error";
cell.detailTextLabel.text = [[_detailItem valueForKey:@"parking"] description];
break;
}
return cell;
}
return nil;
}
[/objc]