我遇到与iOS CABasicAnimation
有关的问题。无论我做什么,我都无法启动方法animationDidStart:
和animationDidStop:finished:
。提前未调用的CAAnimation委托方法
- (void)start{
[self removeAllAnimations];
CABasicAnimation *pathAnimation = [self makeAnimationForKey:@"strokeEnd"];
[self addAnimation:pathAnimation forKey:@"strokeEnd"];
}
- (CABasicAnimation *)makeAnimationForKey:(NSString *)key {
CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:key];
anim.fromValue = [NSNumber numberWithFloat:0.f];
anim.toValue = [NSNumber numberWithFloat:1.f];
anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
anim.duration = self.duration;
anim.delegate = self;
return anim;
}
- (void)animationDidStart:(CAAnimation *)anim{
NSLog(@"HERE START");
}
- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{
NSLog(@"HERE STOP");
}
任何提示或帮助将不胜感激,谢谢:我的类继承CAShapeLayer
并执行它里面的动画!
记住层被克隆的动画时,那么你可能不会得到你想要使用像这样的一个子类的效果。 – 2015-04-04 05:24:02
感谢提醒大卫,我一定会记住它。 – 2015-04-05 19:17:02
__请注意''CAAnimation''''delegate'是强大的,所以你可能需要将它设置为'nil'来避免保留周期!__ – 2016-08-10 12:35:37