我有这段代码,它在我的另一个项目中工作得很好,我在其中一个项目中实现了文本在循环中从黑到白闪烁的“闪光”效果。当我将其复制并粘贴到我的另一个项目中时,CompletionBlock会立即触发,而忽略动画持续时间。可能的原因是什么?
- (void)animateTextFlashingWhite
{
[CATransaction begin];
[CATransaction setCompletionBlock:^{
[self animateTextFlashingBlack];
NSLog(@"finished white");
}];
[CATransaction setValue:[NSNumber numberWithFloat:0.7f] forKey:kCATransactionAnimationDuration];
self.myStrobeLabel.textColor = [UIColor whiteColor];
[CATransaction commit];
}
- (void)animateTextFlashingBlack
{
[CATransaction begin];
[CATransaction setCompletionBlock:^{
[self animateTextFlashingWhite];
NSLog(@"finished black");
}];
[CATransaction setValue:[NSNumber numberWithFloat:0.7f] forKey:kCATransactionAnimationDuration];
self.myStrobeLabel.textColor = [UIColor blackColor];
[CATransaction commit];
}发布于 2013-03-19 06:46:40
我不认为textColor是可动画的。
如果您只是想要交叉淡入淡出,可以通过向标签添加一个CATransition对象来实现。
[self.myStrobeLabel.layer addAnimation:[CATransition animation] forkey:@"transition"];
self.myStrobeLabel.textColor = [UIColor blackColor];https://stackoverflow.com/questions/15488380
复制相似问题