【问题标题】:How can I get iOS to show a delete button on a tableView, but not allow a full swipe from the right to delete如何让 iOS 在 tableView 上显示删除按钮,但不允许从右侧完全滑动删除
【发布时间】:2019-09-24 13:07:09
【问题描述】:

从右侧完全滑动以从 tableView 中删除对我的应用来说太危险了,因为我的用户报告说意外丢失了数据。

我可以添加“你确定吗?”提示,但我希望允许出现删除按钮,但禁用完全滑动行为。

我该怎么做?

【问题讨论】:

    标签: ios objective-c uitableview


    【解决方案1】:

    通过用您自己的副本替换通常的删除按钮行为来做到这一点,将 performFirstActionWithFullSwipe 设置为 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;
        }
    

    【讨论】:

      猜你喜欢
      • 2011-06-09
      • 1970-01-01
      • 1970-01-01
      • 2014-01-14
      • 2013-03-15
      • 2011-03-19
      • 2023-03-04
      • 2017-08-23
      • 1970-01-01
      相关资源
      最近更新 更多