在deleteRowsAtIndexPaths之后首先点击UITableView

  发布于 2023-02-11 18:00

我的UITableView有一组单元格.滑动单元格会导致出现"删除"按钮.点击此删除按钮会导致执行以下代码:

NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];
[self.itemList removeObjectAtIndex:indexPath.row];

这正确地导致单元格从列表中删除.但是,当我点击UITableVIew中的一个剩余单元格来选择它时,将忽略此点击(即不调用tableView:didSelectRowAtIndexPath).如果我再次点击,那么它可以正常工作(即调用tableView:didSelectRowAtIndexPath).

删除后点击哪个单元格并不重要,删除后等待多长时间,删除后的第一次点击始终被忽略,删除后的第二次点击成功.

基于各种stackOverflow答案,我试过:

self.tableView.editing = NO;删除后设置

[self.tableView reloadData];删除后调用

[self.tableView reloadSections:indexSet withRowAnimation:UITableViewRowAnimationFade];删除后调用

[self.tableView beginUpdates];在删除之前和删除[self.tableView endUpdates];之后调用

同时完成上述所有操作

以上都没有帮助; 删除后的第一次点击仍然始终被忽略.

更新:我还将[self.itemList removeObjectAtIndex:indexPath.row];代码添加到上面的代码片段中.我的数据源委托方法如下所示:

-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}

-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return self.itemList.count;
}

上面的代码片段在doDelete方法中被调用以响应按钮tap([self.deleteButton addTarget:self action:@selector(doDelete) forControlEvents:UIControlEventTouchUpInside];)

更新#2:基于Lyssa的评论,我尝试了以下内容:我删除了对自定义删除按钮和滑动手势的所有引用,然后将此代码添加到我们的UITableView委托:

-(BOOL) tableView:(UITableView*)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    return YES;
}

-(void) tableView:(UITableView*)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        [self.itemList removeObjectAtIndex:indexPath.row];
        [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];
    }
}

这确实有效 - 我现在可以删除行,下一个点击确实可以正常工作.但是,这会删除我们的表格单元格的自定义外观,这首先是我们自定义代码的目的.也许我应该考虑使用上面的方法并自定义删除按钮(我已经做了一些寻找,但还没有找到一个好的答案).

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有