#pragma mark-- 单元格删除、添加方法,只要实现了此方法就能支持删除了,但添加还需要其它
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
//MVC => 数据是保存在模型中
//删除步骤1. 删除 self.forumListArray 中 indexPath 对应的数据
[self.forumListArray removeObjectAtIndex:indexPath.row];
//删除步骤2. 刷新表格 即重新加载所有数据
[self.subTableView reloadData];
//步骤2还可以写成:
//deleteRowsAtIndexPaths 是让表格控件动画删除指定的行
// [self.subTableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:(UITableViewRowAnimationMiddle)];
}else if (editingStyle == UITableViewCellEditingStyleInsert){
//1.向数组添加数据
[self.forumListArray insertObject:@"闫超志" atIndex:indexPath.row];
//2.刷新表格
// [self.subTableView reloadData];
//步骤2还可以写成
//新建一个indexpath
NSIndexPath *path = [NSIndexPath indexPathForRow:indexPath.row inSection:indexPath.section];
[self.subTableView insertRowsAtIndexPaths:@[path] withRowAnimation:(UITableViewRowAnimationMiddle)];
}
}
#pragma mark-- tableview代理方法,添加cell的方法.注意:上面要添加协议,另外要先在viewdidload里面将tableview设置成可编辑状态
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row % 2) {
return UITableViewCellEditingStyleDelete;
}
return UITableViewCellEditingStyleInsert;
}
#pragma mark-- 单元格拖动方法
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath
{
[self.forumListArray exchangeObjectAtIndex:sourceIndexPath.row withObjectAtIndex:destinationIndexPath.row];
}