0

在我tableView的表格中始终存在五行,当我点击其中之一时,新的三行将出现在所点击的行下方。

如果前五行是默认值UITableViewCell,我希望这三个单元格也来自另一个自定义单元格;所以主要的五个单元格将不同于辅助行(主单元格下的三个)。

这是我添加辅助行的方法:

tableView委托中didSelectRowAtIndexPath

NSInteger count = indexPath.row + 1;
NSMutableArray *newRows = [NSMutableArray array];//

   self.expandedIndex = indexPath.row + 1;
   self.tableExpanded = YES;

   for(int i = 0; i < [self.numbers count]; i++)
   {
        NSIndexPath *path = [NSIndexPath indexPathForRow:count inSection:0];
        [newRows addObject:path];
        [self.myArray insertObject:[self.numbers objectAtIndex:i] atIndex:count];
        count++;
   }

     [tableView insertRowsAtIndexPaths:newRows withRowAnimation:UITableViewRowAnimationTop];

添加的行,但我希望它们来自我要创建的自定义单元格,任何想法

4

1 回答 1

0

这就是我会做的。我会创建newRows一个属性,然后在结束时didSelectRowAt...调用表刷新。然后在我的cellForRowAtIndexPath检查中查看特定的 indexPath 是否在newRows,如果它使用不同的单元格样式:

- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell;

    if ([self.newRows contains:indexPath]) {
        // create custom cell
    } else {
        // create normal cell
    }

    return cell;
}

如果这没有意义,请告诉我,我可以详细说明。

另请注意,您将需要处理一些有趣的边缘情况。例如,如果用户单击第 3 个单元格并将新单元格插入到第 4-6 行,然后他们单击第 2 个单元格,在第 3-5 行添加新单元格,那么之前的 4-6 个单元格现在将位于第 7-9 行。我不确定你是如何构建你的应用程序的,所以这可能不是问题(比如可能在五个单元格中的一个上一次可以添加子单元格),但只是意识到这是一种可能性。

于 2013-02-08T17:27:23.877 回答