如何在deleteRowsAtIndexPaths中捕获动画结尾

paw*_*isz 10 animation uitableview ios

我想知道是否有可能捕获在deleteRowsAtIndexPaths期间触发的动画是否结束?我想要做的是从UITableView删除一些所有行,除了我点击的一行.接下来我想在同一个UITableView中插入几行.这两个操作都在单独的beginUpadate/endUpdate块中执行.问题是在删除动画结束之前,插入动画开始,我希望它一个接一个地被触发,因为插入的行来自外部webservice.

我正在考虑在方法中包装插入和删除方法(在UITableView子类中),我可以用自定义的方法替换标准动画,并在第一个结束时使用objective-c块一个接一个地触发,但它似乎是不可能的或者我可以做到了.

在此先感谢您的帮助!

Dav*_*ull 15

我相信包装你的表更新animateWithDuration将工作:

[UIView animateWithDuration:0.0 animations:^{
    [coursesTable beginUpdates];
    …
    [coursesTable endUpdates];
} completion:^(BOOL finished) {
    // Code to run when table updates are complete.
}];
Run Code Online (Sandbox Code Playgroud)

我在Stack Overflow上找到的其他方法对我来说不起作用.

我一次使用这种技术并测试它足以验证在我调用表的endUpdates方法之后调用完成块,并且调用它的时间似乎合理,但我重写了我的代码所以我不再需要它了在我完全验证动画实际完成之前.

  • 男人,你真棒!谢谢你的伎俩 (2认同)