我做了一个填充了 plist 数据源的 UITableView,我用 Interface Builder 做了自定义单元格(所以我使用的是 xib 文件)
这是我正在创建单元格的代码部分:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
DataTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"DataTableViewCell" owner:nil options:nil];
for (UIView *view in views) {
if ([view isKindOfClass:[UITableViewCell class]]) {
cell = (DataTableViewCell*)view;
}
}
}
return cell;
}
然后当我使用:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
方法来获取选定的单元格,我调用这个方法来展开单元格:
- (void)expandCellAtIndex:(int)index {
NSMutableArray *path = [NSMutableArray new];
NSArray *currentCells = [subCellItems objectAtIndex:index];
int insertPos = index + 1;
for (int i = 0; i < [currentCells count]; i++) {
[path addObject:[NSIndexPath indexPathForRow:insertPos++ inSection:0]];
}
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade];
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
现在的问题是,由于我以前没有这样做过,所以我被困在如何更改展开时要显示的单元格的逻辑上,这是因为方法:
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade];
正在搜索正确的路径并插入一个单元格,该单元格的 xib 文件与我在开始时加载的数据相同
如何设置不同的单元格(具有不同的 xib 和不同的数据)来显示而不是像以前一样?
基本上我有这张桌子工作,但在扩展单元格中,我看到你触摸的单元格的副本