繁体   English   中英

图层动画第一次可以正常运行,但不能在第二次相同的调用上运行

[英]Layer animation works fine first time, but not on second identical invocation

我有一个动画,在第一次调用时效果很好。 但是,如果我想使用相同的代码再次对同一层进行动画处理,则它会立即完成,并在animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag上以flagNO调用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM