С массива, который указывает, какой тип должен быть показан вы можете вставить 3 ячейки динамически, как следующее:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// old value = @[@0,@0];
self.data = @[@0,@1,@1,@1,@0];
NSMutableArray *indexPaths = [NSMutableArray array];
for(NSInteger i=indexPath.row; i< indexPath.row+3; i++)
{
[indexPaths addObject:[NSIndexPath indexPathForRow:i+1 inSection:0]];
}
[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade];
[self.tableView endUpdates];
}
и будет называться по протоколу источника данных для ячейки для вставки.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell;
if([self.data[indexPath.row] isEqual: @0]){
cell = [tableView dequeueReusableCellWithIdentifier:@"level1cell" forIndexPath:indexPath];
}
else
{
cell = [tableView dequeueReusableCellWithIdentifier:@"level2cell" forIndexPath:indexPath];
}
// Configure the cell...
return cell;
}
PS: я использовал массив с единицами и нулями, чтобы сделать код простым для чтения, вы должны обязательно заменить это чем-то более элегантное :)
Если я это сделаю, первая ячейка будет заменена новыми 3-мя ячейками. Я не хочу, чтобы моя первая ячейка была удалена. Я хочу добавить представление между двумя ячейками таблицы, которые показывают подробный вид! –
Вы правы, извините за это - обновили код примера. – Eike
, если мы снова коснемся той же ячейки, добавятся ли дополнительные ячейки? –