Ios 使用多个自定义UITableViewCells
我正在尝试实现分组样式的UITableView,如Contact apps detailedView。我希望最上面的单元格是透明的,并且在底部有一个UISegemtedControl 当我尝试创建两种不同类型的自定义单元格时,仅加载第一种类型的单元格,即使我使用了两种不同的单元格标识符 希望得到高级官员的指导。或者是关于同一主题的一些好的教程提示Ios 使用多个自定义UITableViewCells,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我正在尝试实现分组样式的UITableView,如Contact apps detailedView。我希望最上面的单元格是透明的,并且在底部有一个UISegemtedControl 当我尝试创建两种不同类型的自定义单元格时,仅加载第一种类型的单元格,即使我使用了两种不同的单元格标识符 希望得到高级官员的指导。或者是关于同一主题的一些好的教程提示 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPa
- (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;
}
嗯,老实说,我也不确定,但是,加载调用只被认为是有效的,当单元格为nil时,可能尝试将第二个作为
if(cell==nil)
调用的else-in加载。。。因为在代码的末尾,您再次将其设置为零。。。因此,可能:-)您通过在“DetailCellView”nib中获取类型为UITableViewCell
的第一个对象,以完全相同的方式加载单元1和单元2。因此,在这两种情况下得到的单元格都是相同的。您的numberOfsectionsTableView:
方法返回什么?好的,我假设您可能只有一个包含两行的节。。。再次查看您的代码,我注意到您以完全相同的方式加载单元1和单元2,方法是在“DetailCellView”nib中获取类型为UITableViewCell
的第一个对象。因此,在这两种情况下,你得到的是同一个细胞。@omz为做这件事的伙伴干杯。将其作为答案发布,我将接受。我已添加我的评论作为答案,谢谢。因此,我误读了您的代码,在您的第一部分中,您希望有不同于其他部分的单元格。。。那么,您的不同nib的名称是什么样的呢?因为,您告诉加载nib,两次都要查找“DetailCellView”