[英]Layer animation works fine first time, but not on second identical invocation
我有一个动画,在第一次调用时效果很好。 但是,如果我想使用相同的代码再次对同一层进行动画处理,则它会立即完成,并在animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag
上以flag
值NO
调用animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag
。
这是添加动画的代码:
imageView.hidden = NO;
CAKeyframeAnimation* animationOpacity =
[CAKeyframeAnimation animationWithKeyPath:@"opacity"];
...
animationOpacity.duration = 2.0;
animationOpacity.removedOnCompletion = YES;
animationOpacity.delegate = self;
[imageView.layer addAnimation:animationOpacity forKey:@"someKey"];
这是委托动作:
-(void) animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag {
imageView.hidden = YES;
}
顺便说一句,最初, imageView
在XIB中可见。
view.hidden = YES
在回调中设置view.hidden = YES
并从父级的viewWillApear
调用动画代码的组合。 当我将动画代码调用移到父对象的viewDidApear
,事情开始按预期运行。
您是否要在再次调用动画之前再次添加动画? 如果不是,则应设置removeOnCompletion = NO
animationOpacity.removedOnCompletion = NO;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.