UIButton touchUpInside与UITableViewCell滑动事件冲突

Nit*_*ish 2 objective-c uibutton uitableview ios

我正在显示滑动按钮,UITableViewCell如下所示:

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
    return YES;
}

- (nullable NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewRowAction *cancelAction;
    UITableViewRowAction *editAction;
    UITableViewRowAction *messageAction;
     cancelAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"Cancel" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath){
        [tableActivities setEditing:NO];
    }];
    cancelAction.backgroundColor = [UIColor blueColor];

    editAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"Edit" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath){
        [tableActivities setEditing:NO];
    }];
    editAction.backgroundColor = [UIColor greenColor];

    messageAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:@"Message"  handler:^(UITableViewRowAction *action, NSIndexPath *indexPath){
        [tableActivities deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
    }];

    return @[messageAction, cancelAction, editAction];
}

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {

}  
Run Code Online (Sandbox Code Playgroud)

在单元格中contentView,我放置了一个UIButtonUIControlEventTouchUpInside controlEvent.
当我通过触摸按钮区域来滑动单元格时,都会UIButton触发滑动和事件.
我该怎么控制呢?

Nir*_*v D 5

您可以通过检查解决你的问题isEditing的性质UITableViewbutton action这样的

- (void)btnTap:(UIButton*) sender {
    if (!self.tableActivities.isEditing) {
        //Perform Action
    }
}
Run Code Online (Sandbox Code Playgroud)