私は、連絡先アプリのdetailedViewのようなグループ化されたスタイルのUITableViewを実現しようとしています。私は一番上のセルが透明で、下にUISegemtedControlを持っています。複数のカスタムUITableViewCellを使用する
2つの異なるタイプのカスタムセルを作成しようとすると、2つの異なるcellIdentifierを使用しても、最初のセルのみがロードされます。
somガイダンスに感謝します。または、同じトピックのための良いチュートリアルのヒント。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
/*
UIView *backView = [[UIView alloc] initWithFrame:CGRectZero];
backView.backgroundColor = [UIColor clearColor];
cell.backgroundView = backView;
[backView release];
*/
static NSString *cellIdentifier1 = @"DetailCellStyle1";
static NSString *cellIdentifier2 = @"DetailCellStyle2";
if (indexPath.section == 0) {
// Load from nib
DetailCellViewController *cell = (DetailCellViewController *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier1];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle]
loadNibNamed:@"DetailCellView"
owner:nil
options:nil];
for (id currentObject in topLevelObjects) {
if ([currentObject isKindOfClass:[UITableViewCell class]]) {
cell = (DetailCellViewController *) currentObject;
break;
}
}
}
return cell;
}
else {
// Load from nib
DetailCellViewController2 *cell = (DetailCellViewController2 *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier2];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle]
loadNibNamed:@"DetailCellView"
owner:nil
options:nil];
for (id currentObject in topLevelObjects) {
if ([currentObject isKindOfClass:[UITableViewCell class]]) {
cell = (DetailCellViewController2 *) currentObject;
break;
}
}
}
return cell;
}
return nil;
}
'numberOfSectionsInTableView:'メソッドは何を返しますか? – omz
これは2を返します。 – Silversnail
2行のセクションが1つしかないと仮定していました。コードをもう一度見て、セル1とセル2をまったく同じ方法でロードすることに気付きました"DetailCellView"ペン先の 'UITableViewCell'型の最初のオブジェクトです。したがって、どちらの場合も同じセルが得られます。 – omz