暂时禁用UITableView中的删除按钮

3

我正在开发的app上的“删除”按钮被点击时会向服务器发送请求。

但是在等待服务器响应的过程中,我可以多次点击“删除”按钮,从而发送出多个服务器请求。

我正在寻找解决方案,希望在收到服务器响应之前禁用“删除”按钮。这是否可行?还有其他优雅的解决方案吗?或者我一开始做错了什么。

谢谢!


第一次点击按钮时禁用它。准备好后再启用它。 - rmaddy
我想我应该更好地表达这个问题。它是关于如何禁用/启用它,而不是是否禁用/启用它。我如何访问UITableView的删除按钮?在UITableView中似乎没有deleteButton。我在苹果文档中也找不到它。 - dagnytaggart
哦,你是在说单元格中的删除按钮?哪一个?小红圆圈还是大红色的删除确认按钮? - rmaddy
大型删除确认按钮。 - dagnytaggart
2个回答

4

在表格单元格中显示删除确认按钮,当用户点击该按钮时,您应该处理通常的commitEditingStyle委托方法。

同时,您会发现在执行服务器请求时,删除按钮仍然保持在视图中。这意味着直到服务器请求完成,您才会实际删除该行。

如果是这种情况,那么您在commitEditingStyle方法中应该立即重新加载正在删除的行。这将删除删除按钮。然后启动服务器请求。一旦服务器请求完成,您可以根据需要更新数据源,然后删除行或重新加载表格或部分。

在单元格中添加一个小活动指示器,以告知用户正在处理该行可能会更好。您还可以防止用户在服务器请求进行时再次滑动该行。


0

当第一次点击时,请使用此方法:

[deleteButton setEnabled:NO];

当你从服务器收到响应时,启用它。


2
最好使用 deleteButton.enabled = NO。禁用按钮将正确更新其外观。您的方法不会改变按钮的外观。 - rmaddy
这是针对UITableViewCell中已经包含的删除按钮,该按钮不可直接访问。 - Josh Bernfeld

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接