我有一个群组动画,但我无法检测到何时点击 animationDidStop。我的代码示例:
[group setDelegate:self];
[view.layer addAnimation:group forKey:@"groupAnimation"];
你们谁知道我怎么知道群动画什么时候完成的?
最佳答案
您还需要设置 animationName 属性以匹配,并确保正确定义您的委托(delegate)函数:
CAAnimationGroup *group = [CAAnimationGroup animation];
group.duration = 2.0f;
group.delegate = self;
[group setValue:@"groupAnimation" forKey:@"animationName"];
[group setAnimations:[NSArray arrayWithObjects:myAnimation, myOtherAnimation, nil]];
[view.layer addAnimation:group forKey:@"groupAnimation"];
. . .
- (void)animationDidStop:(CAAnimation *)animation finished:(BOOL)finished
{
if (finished)
{
NSString *animationName = [animation valueForKey:@"animationName"];
if ([animationName isEqualToString:@"groupAnimation"])
{
// your groupAnimation has ended
}
}
}
请注意,对于组动画,组件动画上设置的委托(delegate)将被忽略。
关于iphone - animationDidStop 用于组动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12164049/