我的动画可以在几个不同的相似视图(在数组中管理)上执行,但完成处理程序不采用参数。那么,如何在完成时知道我正在完成哪个动画?
以下它用于对一个(几个)部分视图的帧进行动画处理。动画完成后,我需要能够向特定部分发送通知View。
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
。或者,如果它是实例变量、静态或全局变量,则在用当前值初始化的块之外创建一个局部变量,然后在块中引用该局部变量。
块将捕获值。