ios - 在 TableView 删除行动画完成后运行其他代码

标签 ios ios6 uitableview

我正在使用标准表格 View 数据源协议(protocol)来删除表格单元格:

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(editingStyle == UITableViewCellEditingStyleDelete)
    {
        [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
    }
}

我想在动画完成后运行一些其他代码,但 deleteRowsAtIndexPaths:withRowAnimation 方法没有完成 block 。在此方法完成后,我还能如何运行一些代码?

最佳答案

对于 iOS 6 Apple 添加了 - tableView:didEndDisplayingCell:forRowAtIndexPath:UITableViewDelegate .当每个 UITableViewCell 从显示中移除时,您应该能够使用它立即获得回调,因此如果您知道您已经在特定索引路径上启动了删除动画,那么您可以使用它作为知道动画已经结束的通常可靠的方式。

(旁白:我想如果用户在动画期间将单元格滚动到屏幕外,那么你可能会得到一个误报,但这种情况不太可能发生,所以我可能会添加一个基本的防护措施来防止持续的负面影响后果而不用担心短暂的,例如当删除中的对象滚动回屏幕时我最终显示一个空单元格,因为我已经从我的商店中删除了它)

关于ios - 在 TableView 删除行动画完成后运行其他代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18475861/

相关文章:

iPhone : Hiding empty tables cells in a plain view table

ios - Realm :在一对多关系中,如何根据本例中的类别获取记录

ios - 在主要目标中包含 pod,而不是在 WatchKit 扩展中

ios - 如何对字符串格式进行排序,例如“2013-10-09”

ios - CATextLayer 上来自 iOS 6 的不需要的垂直填充

ios - 可折叠表格 View 错误

objective-c - 为 iOS 应用程序实现完美哈希函数的更好方法是什么?

ios - XCUITest - 打开 iOS 设置并更改日期/时间

ios - 如何获取 UICollectionViewCell 的矩形?

iphone - UITableView 单击按钮时重新加载数据