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;
}
}