当用户没有完全滑动以删除表格视图单元格时,如何禁用/启用编辑按钮?

Posted

技术标签:

【中文标题】当用户没有完全滑动以删除表格视图单元格时,如何禁用/启用编辑按钮?【英文标题】:How do i disable/enable edit button when user doesn't fully swipe to delete table view cell? 【发布时间】:2014-11-11 16:24:52 【问题描述】:

我有一个 tableView,它允许通过滑动单元格或通过“编辑”按钮进入编辑模式来删除。问题是,我不确定如何正确启用/禁用编辑模式;它应该在用户开始滑动一行后立即禁用,并在“取消滑动”一行后启用。

目前,我在editingStyleForRowAtIndexPath(返回删除)中禁用并在didEndEditingRowAtIndexPath 中启用。

问题是,如果用户没有完成滑动怎么办?例如,他们开始滑动一行,但在完全滑动之前松开(导致该行弹回并隐藏删除按钮)。在这种情况下,不会调用 didEndEditingRowAtIndexPath。如何确保半滑动后表格可编辑?

【问题讨论】:

【参考方案1】:

这是另一种可以正常工作的方法,(退出或评论:editingStyleForRowAtIndexPath 和 didEndEditingRowAtIndexPath。)。你必须只实现这个:

 -(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath

if (editingStyle == UITableViewCellEditingStyleDelete)

    // Configure delete action:
    // First remove the delete data from you data source.
  Put here you code, like this:
  [self.theMutableArrayWithDataSourde removeObjectAtIndex:indexPath.row];
    // Second remove the cell:
  [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];




【讨论】:

以上是关于当用户没有完全滑动以删除表格视图单元格时,如何禁用/启用编辑按钮?的主要内容,如果未能解决你的问题,请参考以下文章

UITableView:滑动表格视图单元格时如何停止选择

尝试滑动删除当前单元格时,表格视图单元格开始抖动

滚动单元格时表格视图设置消失

滑动单元格时,有没有办法从 tableViewCell 导航到另一个视图控制器?

UITableView 禁用滑动以快速删除特定单元格

iOS - 如何查看表格视图单元格上的“滑动删除”操作?