每次文本更改都不会发生过渡动画

时间:2015-01-05 13:10:00

标签: ios

我已将过渡动画添加到UILabel以进行文字更改。

但是当我将其添加到layer时,它只会发生一次。

- (IBAction)changeText:(id)sender {
  if (!self.transitionAnimation) {
    CATransition *animation = [CATransition animation];
    animation.duration = 0.5;
    animation.type = kCATransitionFade;
    animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    animation.removedOnCompletion = NO;
    [self.label.layer addAnimation:animation forKey:nil];
    self.transitionAnimation = animation;
  }
  self.label.text = [NSString stringWithFormat:@"Text %d",arc4random()];
}

1 个答案:

答案 0 :(得分:0)

为什么你需要对动画有强烈的引用?该引用没有被删除,因此您的控件不会多次输入if块。

要么transitionAnimation上的didStop属性,要么根本不存储引用。

修改:此外,我认为您不需要将removedOnCompletion作为NO