iOS 11 tableView删除列表左滑无限延长报错解决办法

在iOS 11中tableView新增左滑删除方法

- (nullableUISwipeActionsConfiguration*)tableView:(UITableView*)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath*)indexPathAPI_AVAILABLE(ios(11.0))API_UNAVAILABLE(tvos);

如果在iOS 11以上的系统版本中实现上面的方法就不会执行下面的iOS11之前的方法了

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



实现左滑无限崩溃解决办法

- (nullableUISwipeActionsConfiguration*)tableView:(UITableView*)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(nonnullNSIndexPath*)indexPathAPI_AVAILABLE(ios(11.0)){

// 在iOS 11实现这个方法就不会执行commitEditingStyle

    if(@available(iOS11.0, *)) {

        UIContextualAction *deleteAction = [UIContextualAction contextualActionWithStyle:UIContextualActionStyleDestructive title:@"删除" handler:^(UIContextualAction * _Nonnull action, __kindof UIView * _Nonnull sourceView, void (^ _Nonnull completionHandler)(BOOL)) {

            // 这句很重要,退出编辑模式,隐藏左滑菜单

            [self.tableViewsetEditing:NOanimated:YES];

            /* 中间为代码删除的具体逻辑实现,进行删除列表接口调用 */

              



            completionHandler(true);

        }];

        UISwipeActionsConfiguration *actions = [UISwipeActionsConfiguration configurationWithActions:@[deleteAction]];

        // 禁止侧滑无线拉伸

        actions.performsFirstActionWithFullSwipe = NO;

        returnactions;

    } else {

        return nil;

    }

}

你可能感兴趣的:(iOS 11 tableView删除列表左滑无限延长报错解决办法)