gpt4 book ai didi

ios - UITableView deleteRowsAtIndexPaths 不工作

转载 作者:可可西里 更新时间:2023-11-01 04:52:11 25 4
gpt4 key购买 nike

我不太确定这里发生了什么,但我遇到了一个我正在使用的联系表。在我的表单中,我添加了向联系人添加电子邮件地址的功能。如下图所示,一旦用户点击“添加电子邮件”,一行就会添加到“电子邮件”部分。

Create contact image

但是,在我单击删除电子邮件后,添加电子邮件按钮下方会出现一个额外的单元格(如下图所示)。

before and after

有一个小红框,似乎是之前删除的单元格,就好像表格没有重新加载一样。这是我的删除代码:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if( editingStyle == UITableViewCellEditingStyleDelete )
{
// Update the data source
NSMutableArray *fields = (NSMutableArray *)self.fields[@(indexPath.section)];
[fields removeObjectAtIndex:indexPath.row];
NSMutableArray *values = (NSMutableArray *)self.values[@([self fieldTypeAtIndexPath:indexPath])];
[values removeObjectAtIndex:indexPath.row];

[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationMiddle];
}
}

那么为什么那个单元格会保留下来呢?我可以在上面的方法中调用 [tableView reloadData],它会删除多余的单元格,但随后会弄乱动画。你能澄清一下我在这里做错了什么吗?

最佳答案

这看起来像一个错误。

我刚刚注意到,即使是 Apple,其提醒应用程序中也存在同样的错误。这似乎与从具有可变高度项目的 UITableView 中删除行有关。

在 Apple 的 Reminders 应用程序中,当您从具有可变高度项的长列表中删除某些内容时,您会在一瞬间看到完全相同的视觉伪像。然后表格跳转,列表看起来正确。我假设 Apple 只是在删除项目后一秒钟重新加载整个表格 View ,以修复视觉故障。

我的建议是将此作为错误报告给 Apple。现在,您可以像 Apple 大概那样重新加载整个 TableView 。

关于ios - UITableView deleteRowsAtIndexPaths 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20792909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com