作者热门文章
- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我想知道是否有可能捕捉到在 deleteRowsAtIndexPaths 期间触发的动画是否结束?我想要做的是从 UITableView 中删除一些所有行,除了我点击的行。接下来我想在同一个 UITableView 中插入几行。这两个操作都在单独的 beginUpadate/endUpdate block 中执行。问题是在删除动画结束之前,插入动画开始了,我希望它一个接一个地触发,因为插入的行来自外部网络服务。
我正在考虑将插入和删除方法(在 UITableView 子类中)包装在我可以用自定义动画替换标准动画的方法中,并使用 objective-c block 在第一个结束时一个接一个地触发,但它似乎是不可能的或我就是做不到。
预先感谢您的帮助!
最佳答案
我相信将表更新包装在 animateWithDuration
中会有效:
[UIView animateWithDuration:0.0 animations:^{
[coursesTable beginUpdates];
…
[coursesTable endUpdates];
} completion:^(BOOL finished) {
// Code to run when table updates are complete.
}];
我在 Stack Overflow 上发现的其他方法对我不起作用。
我曾经使用过这种技术并对其进行了足够的测试以验证在我调用表的 endUpdates 方法之后调用了完成 block 并且调用它的时间似乎是合理的,但我重写了我的代码所以我不需要在我完全验证动画确实完成之前,它就不再存在了。
关于ios - 如何在 deleteRowsAtIndexPaths 中捕捉动画结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11879669/
我是一名优秀的程序员,十分优秀!