【问题标题】:iOS: Is it possible to delete cells in cellForRow data sourceiOS:是否可以删除 cellForRow 数据源中的单元格
【发布时间】:2017-12-03 18:00:30
【问题描述】:

是否可以删除一个单元格

- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath {

我尝试在 UITableView 数据源中使用以下方法。

 [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];

但是,当我尝试此操作时,我的应用程序崩溃了。我收到断言失败崩溃。

我之所以尝试这样做是因为在用户滚动时会显示某些数据,而我想在进行时将其删除。不过,我相信我可能必须提前做。

【问题讨论】:

  • 除非返回一个单元格,否则不要在cellForRowAt 中做任何事情。
  • 好吧,我也这么想。另外,在 cellForRow 方法中设置单元格信息是个好主意吗?
  • 是的,为给定的 indexPath 设置单元格是您应该在该方法中执行的操作。

标签: ios objective-c uitableview datasource


【解决方案1】:

您的应用正在崩溃,因为您只是从 UI 中删除了单元格,而不是实际的数据源。

选项 1: 1)首先从数据源的特定索引中删除项目 2) 重新加载表格视图

选项 2: 1)首先从数据源的特定索引中删除项目 2) 调用[self.tableview deleterowAtIndexpath:[Nsindexpath ... for the datasource item : withAnimation:UItableViewanimation.. function]]

选项 2 只是在移除时显示一些动画。

你可以在 cellforrow 函数之外调用这些函数,就像你想要删除该项目的任何操作按钮或函数一样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多