项目使用iOS11新特性出现bug,点击删除按钮点不动,究其原因,本地UIButton(UIButton+ButtonRepeate)写的扩展runtime 采用系统交换方法导致 UIContextualAction的系统UIButton方法没有执行 删除本地uibutton扩展方法就OK
下面是侧滑删除操作的代码 :
#pragma mark 左滑删除
-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
return YES;
}
-(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath {
return @"删除";
}
// 第一种方法
//*8.0之后出现的可以设置左划后显示的内容
- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewRowAction *action1 = [UITableViewRowAction rowActionWithStyle:1 title:@"删除" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
[self DeleteMemberIdMeth:indexPath.row];
[_tableView reloadData];
}];
action1.backgroundColor = [UIColor redColor];
return @[action1];
}
// 第二种 ios 11
- ( UISwipeActionsConfiguration *)tableView:(UITableView *)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath API_AVAILABLE(ios(11.0)){
//删除
UIContextualAction *deleteRowAction = [UIContextualAction contextualActionWithStyle:UIContextualActionStyleNormal title:@"删除" handler:^(UIContextualAction * _Nonnull action, __kindof UIView * _Nonnull sourceView, void (^ _Nonnull completionHandler)(BOOL)) {
[self DeleteMemberIdMeth:indexPath.row];
[_tableView reloadData];
completionHandler (YES);
}];
// deleteRowAction.image = [UIImage imageNamed:@"icon_del"];
deleteRowAction.backgroundColor = [UIColor redColor];
NSArray *actions = [[NSArray alloc] initWithObjects:deleteRowAction, nil];
UISwipeActionsConfiguration *config = [UISwipeActionsConfiguration configurationWithActions:actions];
return config;
}