0

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

以下用于为一个(几个)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];
4

1 回答 1

1

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

该块将捕获该值。

于 2017-02-01T20:42:37.383 回答