----- TableView 删除和添加 -----
** UITableView 编辑步骤
1.让 tableView 处于编辑状态
2.协议确定
1)确定 cell 是否处于编辑状态
2)设定 cell 的编辑样式(删除、添加)
3) 编辑状态进行提交**
-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
//插入
// return UITableViewCellEditingStyleInsert;
//删除
return UITableViewCellEditingStyleDelete;
}
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
switch (editingStyle) {
case UITableViewCellEditingStyleNone:
{
}
break;
case UITableViewCellEditingStyleDelete:
{
//修改数据源,在刷新 tableView
[_dataSource removeObjectAtIndex:indexPath.row];
//让表视图删除对应的行
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
break;
case UITableViewCellEditingStyleInsert:
{
[_dataSource insertObject:@"我是新增" atIndex:indexPath.row];
//让表视图添加对应的行
[tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
break;
default:
break;
}
}
-(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
{
return @"删除";
}
----- TableView 移动 -----
- 1.实现协议:告诉 tableView 是否能够移动
-(BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath
{
//修改数据源
[_dataSource exchangeObjectAtIndex:sourceIndexPath.row withObjectAtIndex:destinationIndexPath.row];
//让表视图对应的行进行移动
[tableView exchangeSubviewAtIndex:sourceIndexPath.row withSubviewAtIndex:destinationIndexPath.row];
}