ios 在tableView的滑動刪除方面封裝的相當(dāng)不錯(cuò),幾段代碼就能實(shí)現(xiàn)效果,下面先說下單組刪除
1. 單個(gè)提示刪除
首先要設(shè)置cell可編輯,這是tableView的代理方法
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
然后在這個(gè)方法里寫上你要做的事(我這里邊寫的是提醒提示框是否刪除)
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
if (editingStyle == UITableViewCellEditingStyleDelete) {
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:@"確定要刪除?刪除后無法恢復(fù)!" preferredStyle:1];
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"確定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
}];
UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
[alert addAction:okAction];
[alert addAction:cancel];
[self presentViewController:alert animated:YES completion:nil];
}
}
最后你可以在這個(gè)代理方法里邊修改文字
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
{
return @"刪除";
}
2 .多個(gè)提示刪除(我這里提示的是取消關(guān)注和設(shè)為默認(rèn))
- (NSArray*)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewRowAction *deleteRoWAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"取消關(guān)注" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
}];//此處是iOS8.0以后蘋果最新推出的api苗桂,UITableViewRowAction,Style是劃出的標(biāo)簽顏色等狀態(tài)的定義告组,這里也可自行定義
UITableViewRowAction *editRowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"設(shè)為默認(rèn)" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
}];
deleteRoWAction.backgroundColor = [UIColor redColor];//可以定義RowAction的顏色
editRowAction.backgroundColor = XABBackBroudBlue;
return @[editRowAction, deleteRoWAction];//最后返回這倆個(gè)RowAction 的數(shù)組
}