gpt4 book ai didi

iphone - 在 UITableView 中保留占位符单元格

转载 作者:行者123 更新时间:2023-12-03 19:09:37 24 4
gpt4 key购买 nike

我有一个 UITableView,我永远不想低于 1 个单元格:它是一个目录读数,如果目录中没有文件,它有一个单元格显示“无文件”。 (在编辑模式下,有一个用于创建文件的奖励单元格,因此编辑模式永远不会低于两个单元格。)

可能只是 sleep 不足让我现在无法摆脱纸袋的束缚,但我总是犯这样的错误:

*** Terminating app due to uncaught exception 
'NSInternalInconsistencyException', reason: 'Invalid update:
invalid number of sections. The number of sections contained
in the table view after the update (2) must be equal to
the number of sections contained in the table view before
the update (2), plus or minus the number of sections inserted
or deleted (1 inserted, 0 deleted).'

发生这种情况是因为我在删除最后一个文件之前预先添加了“无文件”占位符。如果我在添加占位符之前删除最后一个文件单元格,则会发生类似的崩溃。无论哪种方式,单元格计数都会与 numberOfRowsInSection 的返回不同步,从而触发崩溃。

当然有针对这种情况的设计模式。告诉我吗?

最佳答案

按照下面的代码片段中所示的方式执行一些操作:

  • 首先从数组中删除该行的数据
  • 如果数组项尚未降至零,则从表中删除行
  • 如果数组项已降至零,则重新加载表格 - 注意:您的代码现在应该提供 1 行数,并配置第 0 行的单元格,以便在调用 tableview 委托(delegate)方法时显示“无文件”。
 - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {    if (editingStyle == UITableViewCellEditingStyleDelete) {        // First delete the row from the data source        [self deleteTableData: indexPath.row];  // method that deletes data from         if ([self.tableDataArray count] != 0) {            [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];        } else {            [self.tableView reloadData];        }    }   }

关于iphone - 在 UITableView 中保留占位符单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4600948/

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