ios - 手动重新排序 UITableView 后的动画完成通知

标签 ios uitableview

UITableView 具有内置动画,在对单元格重新排序后,它会轻轻地放置到空白空间中。动画结束后是否可以从哪里获取某种通知?我想在完成后调用一个方法。目前我正在使用 performSelector:withObject:afterDelay: 目前工作正常,但我想知道是否有可能进入动画完成。
重申一下,我不是在谈论自定义动画,只是 UITableView 中内置的动画。

我一直在四处寻找,似乎无法找到答案。

最佳答案

我意识到这个问题很古老,但当我试图找到与@Gobot 遇到的相同问题的答案时,我仍然偶然发现了它。好吧,事实证明有一个简单的解决方案。就像@Mitchell Vanderhoeff 所说的那样,您需要插入方法

- (void)tableView:(UITableView *)tableView
        moveRowAtIndexPath:(NSIndexPath *)fromIndexPath
        toIndexPath:(NSIndexPath *)toIndexPath {
        [CATransaction setCompletionBlock:^{
            // Completion code here
        }];
}

在您的 tableview 委托(delegate)中,从 tableview 中获得通知,它即将移动一行。关键是 CATransaction setCompletionBlock。这将允许您在 tableview 为行移动所做的隐式动画事务上设置一个完成 block 。顾名思义,您在该 block 中放入的任何内容都将在动画完成后执行。

如果 QuartzCore 框架尚未包含在您的项目中,则需要将其包括在内。

关于ios - 手动重新排序 UITableView 后的动画完成通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9731260/

相关文章:

ios - 将 subview 添加到容器 View 共享的父 View 会调整容器 View 的大小

objective-c - 自定义单元格标签不会自动换行

长按时出现 iOS 7 UITableViewCell 按钮

ios - 如何更改分组类型 UITableView 中标题的字体颜色?

swift - Swift 中索引为 3 的 UITableViewEditingStyle

ios - 为什么我的 UIViewController 顶部有 20px 的间隙?

ios - 在 iOS 中,使用 CGPDFDocumentRef,为什么我的 PDF 显示大边距而不是整个页面?

ios - 设置自定义按钮字体而不被 Storyboard 中设置的值覆盖

objective-c - 为多个方法调配复制一个方法 IMP

ios - 如何在 iOS 中更改 titleForHeader 背景颜色?