Как я могу заставить iOS показывать кнопку удаления на tableView, но не разрешать полный удар справа для удаления - PullRequest
0 голосов
/ 24 сентября 2019

Полное пролистывание справа для удаления из tableView слишком опасно для моего приложения, поскольку мои пользователи сообщают о случайной потере данных.

Я МОГУ добавить «Вы уверены?»Подсказка, но вместо этого я бы хотел, чтобы кнопка удаления появлялась, но отключил полное поведение свайпа.

Как я могу это сделать?

1 Ответ

1 голос
/ 24 сентября 2019

Вы можете сделать это, заменив обычное поведение кнопки удаления своим собственным, если для метода executeFirstActionWithFullSwipe установлено значение FALSE

    - (UISwipeActionsConfiguration *) tableView:(UITableView *)tableView
    trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath {
        //optional- returns previous behaviour when table is in edit mode
        if (tableView.editing ) {
            return nil;
        }

        UIContextualAction *deleteAction = [UIContextualAction contextualActionWithStyle:UIContextualActionStyleDestructive title:@"Delete" 
handler:^(UIContextualAction * _Nonnull action, __kindof UIView * _Nonnull sourceView, void (^ _Nonnull completionHandler)(BOOL)) {
                 // call your existing delete code
                [self tableView:tableView commitEditingStyle:UITableViewCellEditingStyleDelete forRowAtIndexPath:indexPath ];
        }];

        UISwipeActionsConfiguration *config = [UISwipeActionsConfiguration configurationWithActions:@[deleteAction]];
        config.performsFirstActionWithFullSwipe=FALSE; // this is why we are replacing the delete button!
        return config;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...