Ios CATextLayer property foregroundColor和;这种方法有时行不通

Ios CATextLayer property foregroundColor和;这种方法有时行不通,ios,core-animation,calayer,Ios,Core Animation,Calayer,在我的iOS应用程序中,我想创建一个UILabel的等价物,它可以以这样一种方式突出显示,以简短地吸引人们对它本身的注意。所以我想让它在跳动的同时把颜色从蓝色变为红色。所以我先增大然后减小fontSize,比如说20%,因此我还需要改变锚点,使其从中心向各个方向均匀向外扩展。我已经成功地编写了实现所有这些目标的代码,前提是它在我创建对象时执行。然而,当我通过iAction通过按下按钮调用它时,颜色更改和fontSizeChange没有效果,而主播点播更改继续工作。我不知道我做错了什么,虽然我的问

在我的iOS应用程序中,我想创建一个UILabel的等价物,它可以以这样一种方式突出显示,以简短地吸引人们对它本身的注意。所以我想让它在跳动的同时把颜色从蓝色变为红色。所以我先增大然后减小fontSize,比如说20%,因此我还需要改变锚点,使其从中心向各个方向均匀向外扩展。我已经成功地编写了实现所有这些目标的代码,前提是它在我创建对象时执行。然而,当我通过iAction通过按下按钮调用它时,颜色更改和fontSizeChange没有效果,而主播点播更改继续工作。我不知道我做错了什么,虽然我的问题的原因可能是显而易见的,但我没有发现它。我已经尝试过代码的各种版本,将UIView子类化并使用CALayer类,但为了提供一个简明的示例,这里我将所有这些打包到viewDidLoad中

任何帮助都将不胜感激

OSX优胜美地版本10.10(14A389)、Xcode版本6.1(6A1052d)、iOS模拟器版本8.1(550.3)


您需要设置textlayer的最终颜色,尝试将其添加到
highlightLabel
方法的末尾

[CATransaction begin];
[CATransaction setDisableActions:YES];
[textLayer setForegroundColor: [UIColor redColor].CGColor];
[CATransaction commit];

谢谢,是的,它很有效,它解决了我的问题,这不是我期望的答案,但这表明我仍在努力解决这一切。因此,在花了几个小时研究书籍和示例之后,我发现了尼克·洛克伍德(Nick Lockwood)的书《iOS核心动画高级技术》(iOS Core Animation Advanced Technicies)中的这段代码,我以前曾尝试过这段代码,但没有意识到它的重要性,它也做了同样的事情。我仍然觉得自己只能部分控制局面。我拨动颜色,然后fontSize自动工作,我想这是因为它们都在同一个堆栈上。你可以在这里找到链接:相关代码在第188页的一个名为-(void)applyBasicAnimation:(CABasicAnimation*)animation toLayer:(CALayer*)layer@gabblerYes的方法中,很高兴知道,我刚刚读了一些页面,它确实说动画不会修改层的模型,只修改层的表示。
[CATransaction begin];
[CATransaction setDisableActions:YES];
[textLayer setForegroundColor: [UIColor redColor].CGColor];
[CATransaction commit];