NSAnimationContext 完成参数?

NSAnimationContext completion parameter?

我的动画可以在几个不同的相似视图上执行(在数组中管理),但完成处理程序不带参数。那么我如何在完成时间判断我正在完成哪个动画?

以下用于为一个(多个)sectionViews 的框架设置动画。动画结束后,我需要能够向特定的 sectionView 发送通知。

NSLog(@"Animation started");

[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration:kAnimationDuration];
[[NSAnimationContext currentContext] setCompletionHandler:^{
    [self doStuff];

    NSLog(@"Animation complete - now we need to notify the correct sectionView");
}];

[[sectionView animator] setFrame:[self frameForSectionView:sectionView]];

[NSAnimationContext endGrouping];

只需在完成处理程序块中引用 sectionView。或者,如果它是一个实例变量、静态变量或全局变量,则在块外创建一个局部变量并用当前值初始化,然后在块中引用该局部变量。

块将捕获值。