我已将过渡动画添加到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()];
}
答案 0 :(得分:0)
为什么你需要对动画有强烈的引用?该引用没有被删除,因此您的控件不会多次输入if块。
要么transitionAnimation
上的didStop
属性,要么根本不存储引用。
修改:此外,我认为您不需要将removedOnCompletion
作为NO
。