iphone - animationDidStop 用于组动画

标签 iphone ios core-animation uiviewanimation

我有一个群组动画,但我无法检测到何时点击 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/

相关文章:

iphone - 将 NSData 数组写入文件

ios - UICollectionView 中 UISwitch 的错误数据表示

ios - 如何使用SDWebImage

iOS - 内存警告后应用程序崩溃 - 仪器显示没有泄漏

macos - 基于 View 的 NSOutlineView 拖放突出显示不正确

iphone - 使用 Core Motion 和 CATransform3D 旋转图像

iphone - 发布到 Facebook 好友墙而不是使用 iOS 发送通知

ios - UISegmentedControl 自定义在 ios 7 中不起作用

cocoa - 调用setNeedsDisplay :YES on layer-hosting view does not redraw the view

ios - CATextLayer-如何禁用隐式动画?