Sim*_*iwi 20 animation delegates core-animation ios
我知道你必须使用这个方法来获取动画完成时的委托方法:
- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag {
Run Code Online (Sandbox Code Playgroud)
问题是,我如何区分多个CAAnimations,如2个或更多?
我用谷歌搜索了这个,但我没有找到任何有用的东西.
请与我分享你是如何完成这一切的!
谢谢!
ber*_*ium 50
您可以为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;
Run Code Online (Sandbox Code Playgroud)
检查委托方法中调用了哪一个:
- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{
if([[anim valueForKey:@"id"] isEqual:@"animation1"]) {
NSLog(@"animation1");
}
if([[anim valueForKey:@"id"] isEqual:@"animation2"]) {
NSLog(@"animation2");
}
}
Run Code Online (Sandbox Code Playgroud)