gpt4 book ai didi

ios - 用户使用滑动手势编辑时如何离开 UITableViewCell EditingStyle 删除模式

转载 作者:行者123 更新时间:2023-11-28 18:34:49 25 4
gpt4 key购买 nike

我需要在用户点击删除按钮后离开删除模式。我想显示一些事件指示器并等待服务器对删除操作的响应,然后再实际删除单元格(如果服务器没有响应,则不删除)。我想从委托(delegate)方法执行的这个操作:

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

我该怎么做?

最佳答案

要隐藏“删除”按钮,您需要使用 setEditing:animated: 方法。

但是,您对 tableView:commitEditingStyle:forRowAtIndexPath: 的实现需要略微延迟执行此操作。引用文献中的注释 Table View Programming Guide for iOS在图 7-1 下方指出:

Note: The data source should not call setEditing:animated: from within its implementation of tableView:commitEditingStyle:forRowAtIndexPath:. If for some reason it must, it should invoke it after a delay by using the performSelector:withObject:afterDelay: method.

所以你的实现可能是这样的:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
// remove delete button only after short delay
[self performSelector:@selector(hideDeleteButton:) withObject:nil afterDelay:0.1];
}
}

- (void)hideDeleteButton:(id)obj
{
[self.tableView setEditing:NO animated:YES];
}

上面的代码让 Delete-Button 在用户按下它 0.1 秒后滑开。当然,您将需要在等待操作完成时防止它返回编辑模式。为此,您可以覆盖 UITableViewDataSource 方法 tableView:canEditRowAtIndexPath: 以防止在等待时再次编辑同一单元格或整个表格。

关于ios - 用户使用滑动手势编辑时如何离开 UITableViewCell EditingStyle 删除模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21132159/

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