一、UITableView的编辑模式可以使UITableViewCell上出现添加按钮和删除按钮,通过代理方法进行对点击事件进行监听处理逻辑
1.通过代理方法设置对应UITableViewCell的编辑模式类型
-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row==0) {
return UITableViewCellEditingStyleNone;//无编辑模式
}
else if (indexPath.row == 1){
return UITableViewCellEditingStyleDelete;//插入模式
} else {
return UITableViewCellEditingStyleInsert;//删除模式
}
}
2.开启编辑模式,此时对应的UITableViewCell上会出现对应的绿色添加按钮和红色删除按钮
[self.tableView setEditing:!self.tableView.editing animated:YES];
3.通过代理监听编辑点击事件
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if(editingStyle == UITableViewCellEditingStyleDelete) {
} else if (editingStyle == UITableViewCellEditingStyleInsert) {
}
}
二、UITableView还提供了将UITableViewCell向左拖拽右侧出现删除按钮的模式
1.只要调用编辑模式监听代理方法(不能同时调用上面讲的返回编辑模式的代理方法)就会自动设定为左滑出现删除按钮这种模式
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath;
2.通过代理方法自定义划动时delete按钮内容
- (NSString *)tableView:(UITableView *)tableView
titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath{
return @"删除这行";
}
3.划动cell是否出现del按钮
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
return YES;
}