表格的多选删除和左滑删除同时实现的方法:
要同时实现表格的多选删除和左滑删除,重要的是返回编辑模式的时候判断返回的是多选方法还是删除方法
#pragma mark - 1、点击编辑按钮
- (void)clickEditBtn:(UIButton *)sender{
sender.selected = !sender.selected;
[_tableView setEditing:sender.selected animated:YES];
if (!sender.selected) {
NSMutableArray *indexAry = [NSMutableArray array];
for (NSDictionary *dict in _selectedNewsAry) {
NSUInteger indexRow = [_collectAry indexOfObject:dict];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:indexRow inSection:0];
[indexAry addObject:indexPath];
}
//修改数据模型
[_collectAry removeObjectsInArray:_selectedNewsAry];
[_selectedNewsAry removeAllObjects];
//写入userDefaults
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setValue:_collectAry forKey:[SettingBll getCollectAryKey]];
//刷新表格
[_tableView deleteRowsAtIndexPaths:indexAry withRowAnimation:UITableViewRowAnimationFade];
}
}
//在这里判断
#pragma mark - 2、返回编辑模式
- (UITableViewCellEditingStyle )tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
if (_tableView.editing) {
return UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert;
}else{
return UITableViewCellEditingStyleDelete;
}
}
#pragma mark - 3、提交编辑操作
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
// if (editingStyle != UITableViewCellEditingStyleDelete) {
// return;
// }
[_collectAry removeObjectAtIndex:indexPath.row];
//储存进去
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setValue:_collectAry forKey:[SettingBll getCollectAryKey]];
[_tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}