iOS11。删除单元格后,Uitableview滑动操作无法识别所选行

时间:2018-07-09 11:14:50

标签: ios ios11 swipe-gesture

我使用iOS 11的新API来配置UITableView的滑动操作,如下所示。

- (UISwipeActionsConfiguration *)tableView:(UITableView *)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath  API_AVAILABLE(ios(11.0)){
if (@available(iOS 11.0, *)) {

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

    [tableView.models removeObjectAtIndex:indexPath.row];
    [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone]; 
    [tableView reloadData];

    [tableView setEditing:NO animated:YES];

    completionHandler(YES);
}];

    UISwipeActionsConfiguration *config = [UISwipeActionsConfiguration configurationWithActions:@[deleteAction]];
    config.performsFirstActionWithFullSwipe = NO;
    return config;
} else {
    return nil;
}
}

首先,滑动按钮会正确显示并正常删除所选行。

然后我尝试继续滑动以完成删除操作。

然后发生了行为行为。

我刚刚刷过的行无法选择。

例如,删除第二行之后。我试图滑动第四个单元格,但是选择了第三个单元格并准备进行滑动。具有weid行为的行都在我刚刚删除的行之下。

此外,删除按钮的高度是行高度的两倍。 如下图所示,是删除按钮的屏幕截图。 the delete button is abnormal

所有错误均在iOS 11上得到解决。因为操作在iOS 10上是正常的。 这是iOS 11的错误吗?如何解决?任何帮助表示赞赏。谢谢!

0 个答案:

没有答案