首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CATransaction CompletionBlock立即触发

CATransaction CompletionBlock立即触发
EN

Stack Overflow用户
提问于 2013-03-19 06:44:02
回答 1查看 1.3K关注 0票数 1

我有这段代码,它在我的另一个项目中工作得很好,我在其中一个项目中实现了文本在循环中从黑到白闪烁的“闪光”效果。当我将其复制并粘贴到我的另一个项目中时,CompletionBlock会立即触发,而忽略动画持续时间。可能的原因是什么?

代码语言:javascript
复制
- (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];
}
EN

回答 1

Stack Overflow用户

发布于 2013-03-19 06:46:40

我不认为textColor是可动画的。

如果您只是想要交叉淡入淡出,可以通过向标签添加一个CATransition对象来实现。

代码语言:javascript
复制
[self.myStrobeLabel.layer addAnimation:[CATransition animation] forkey:@"transition"];
self.myStrobeLabel.textColor = [UIColor blackColor];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15488380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档