ios - animationDidStop 方法的多个 CAAnimations?

标签 ios animation delegates core-animation

我知道您必须使用此方法来获取动画结束时的委托(delegate)方法:

- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag {

问题是,我如何区分多个 CAAnimation,比如 2 个或更多?

我用谷歌搜索了这个,但没有发现任何有用的东西。

请与我分享您是如何做到这一点的!

谢谢!

最佳答案

您可以像这样为 CAAnimation 实例设置键/值对象:

CABasicAnimation *theAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
[theAnimation setValue:@"animation1" forKey:@"id"]; 
theAnimation.delegate = self;

CABasicAnimation *theAnimation2 = [CABasicAnimation animationWithKeyPath:@"opacity"];
[theAnimation2 setValue:@"animation2" forKey:@"id"];    
theAnimation2.delegate = self;

检查在委托(delegate)方法中调用了哪一个:

- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{
    if([[anim valueForKey:@"id"] isEqual:@"animation1"]) {
        NSLog(@"animation1");
    }
    if([[anim valueForKey:@"id"] isEqual:@"animation2"]) {
        NSLog(@"animation2");
    }
}

关于ios - animationDidStop 方法的多个 CAAnimations?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7748722/

相关文章:

ios - UITableViewCell如何根据里面标签的大小来布局?

iphone - 将 XML 转换为 NSString

android - 缩放动画导致 View 在动画开始前缩短

ios - 试图快速理解协议(protocol)和委托(delegate)

ios - 如何防止访问其他类的委托(delegate)方法?

ios - 在 iOS 应用程序(如 Facebook)中预览嵌入式链接

objective-c - 类和 block 的生命周期

css - 具有转换问题的 SVG CSS 关键帧动画(<text> 和 <rect>)

cocoa - 如何在 10 秒内循环播放动画

c# - 编译器不明确的调用错误 - 匿名方法和带有 Func<> 或 Action 的方法组