self.navigationItem.rightBarButtonItem = self.editButtonItem;
- (void)setEditing:(BOOL)editing animated:(BOOL)animated { [super setEditing:editing animated:animated]; [self.countriesTableView setEditing:editing animated:animated]; }
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete) { Country * delegateCountry = self.countries[indexPath.row]; [self.countries removeObject:delegateCountry]; [self.countriesTableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; } }
insert(默认编辑样式都是UITableviewCellEditingStyleDelete),所以添加insert样式。
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { if ((indexPath.row%2) == 0) { return UITableViewCellEditingStyleInsert; } return UITableViewCellEditingStyleDelete; }
}else if (editingStyle == UITableViewCellEditingStyleInsert){ Country * copiedCountry = self.countries[indexPath.row]; Country * newCountry = [[Country alloc] init]; newCountry.name = copiedCountry.name; newCountry.flag = copiedCountry.flag; newCountry.capital = copiedCountry.capital; newCountry.motto = copiedCountry.motto; [self.countries insertObject:newCountry atIndex:indexPath.row+1]; [self.countriesTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:indexPath.row + 1 inSection:indexPath.section]] withRowAnimation:UITableViewRowAnimationRight]; }
重新排序
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { return YES; }
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath { [self.countries exchangeObjectAtIndex:sourceIndexPath.row withObjectAtIndex:destinationIndexPath.row]; [self.countriesTableView reloadData]; }