Если вы хотите вставить ячейки табличного представления при нажатии на ячейку, попробуйте следующий код.
Предположим, вы собираетесь вставить 3 строки в позиции 1, 2 и 3 в разделе 0. В методе didSelectRowAtIndexPath выполните следующие действия. Здесь строки будут вставлены в секцию 0, если мы выберем строку 0 (первая строка) в секции 0 (первая секция).
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == 0 && indexPath.section == 0) {
// Create indexPaths for the rows you are going to insert
NSIndexPath *indexPath1 = [NSIndexPath indexPathForRow:1 inSection:0]];
NSIndexPath *indexPath2 = [NSIndexPath indexPathForRow:2 inSection:0]];
NSIndexPath *indexPath3 = [NSIndexPath indexPathForRow:3 inSection:0]];
// Increase the number of rows in section 0 by 3, as we are inserting 3 rows here
numberOfRowsInSectionZero = numberOfRowsInSectionZero + 3;
// Insert the rows
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath1, indexPath2, indexPath3, nil] withRowAnimation:UITableViewRowAnimationFade];
}
}
В вашем методе numberOfRowsInSection вы должны иметь что-то вроде следующего:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection: (NSInteger)section {
// some code here
if (section == 0) return numberOfRowsInSectionZero;
// some code here
}
И убедитесь, что у вас есть соответствующий код в методе cellForRowAtIndexPath для отображения содержимого во вновь отображаемых строках.
Примечание. Необходимо изменить код таким образом, чтобы строки не вставлялись при щелчке строки 0 раздела 0, когда они уже вставлены.