2
  • 当我的表格视图处于编辑模式时,会出现红色 (-) 按钮。
  • 当用户点击其中一个时,会出现 [Delete] 按钮。
  • 当用户点击 [Delete] 时,我首先检查一些东西(部分是在线的)。可能不允许此删除。

  • 不允许删除该单元格时,如何隐藏 [Delete] 按钮,让红色 (|) 按钮以动画方式再次变为 (-)?所以,我不希望我的整个表格离开编辑状态。

4

4 回答 4

7

要获得实际的动画(而不是UITableViewRowAnimationRight/ UITableViewRowAnimationAutomatic)动画,只需执行

[self.tableView beginUpdates];
[self.tableView setEditing:NO animated:NO];
[self.tableView setEditing:YES animated:NO];
[self.tableView endUpdates];

beginUpdatesendUpdates提供动画,tableView只是从不编辑切换到立即编辑,关闭删除按钮。

希望这可以帮助!

于 2015-02-28T13:09:30.673 回答
7

我自己也遇到过这个问题,我可能会打开一个警报视图来进一步提示用户,如果他们选择不继续,我希望重置删除按钮。这似乎是最简单的方法,假设deleteIndexPath是选择删除的行的索引路径:

[self.tableView reloadRowsAtIndexPaths:@[deleteIndexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
于 2014-04-18T15:18:57.370 回答
1

我现在看到您只想对某些单元格禁用删除。您可以通过以下几种方式执行此操作:

tableView:canEditRowAtIndexPath方法:在您希望 DELETES 被禁用的地方返回 NO。 tableView:canMoveRowAtIndexPath:在您希望允许重新排序的地方返回 YES。

您可能需要考虑对 UITableViewCell 进行子类化,以使其具有维持自己状态的能力(因此单元格知道是否允许删除。然后您可以询问实际的单元格实例并确定是否应该启用删除,即使在列表可能会重新排序。

于 2013-09-09T11:48:30.880 回答
0

要隐藏整个表格视图中的任何图标,然后在您的控制器中,
覆盖 EditingStyleForRow 并返回 UITableViewCellEditingStyle.None

  1. 无:将隐藏表格视图项目左侧的任何图标,
  2. 删除:将显示删除图标
  3. 插入:将显示添加图标
于 2021-05-25T10:46:15.227 回答