我的动画可以在几个不同的类似视图上执行(在数组中管理),但是完成处理程序不接受参数。那么如何在完成时告诉我正在完成哪个动画?
以下用于为一个(几个)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];
答案 0 :(得分:1)
只需在完成处理程序块中引用sectionView
即可。或者,如果它是一个实例变量,静态或全局变量,那么在用当前值初始化的块之外创建一个局部变量,然后在块中引用该局部变量。
该块将捕获该值。