我知道您必须使用此方法来获取动画结束时的委托(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/