我希望动画iPhone上CATextLayer的文本颜色(foregroundColor)的变化。根据文档,该属性的隐式动画在OSX 10.6上不可用,但没有提到iOS。因此,我只是假设动画必须是明确的,才能在iOS上运行。
我使用+(class)layerClass
更改了支持图层类,并在UIView init
方法中为该属性设置了初始值。文本显示正常,以及我应用的所有属性(阴影,字体等),但动画没有任何影响。
下面是我的动画方法,我从KVO观察方法调用,以便在观察到的属性发生变化时视图提醒用户。
-(void) animateTextChange{
animation = [CABasicAnimation animationWithKeyPath:@"foregroundColor"];
[animation setFromValue:[[UIColor blackColor] CGColor]];
[animation setToValue:[[UIColor whiteColor] CGColor]];
[animation setDuration:2.0f];
[[self layer] addAnimation:animation
forKey:@"foregroundColor"
];
}
一如既往地谢谢。
答案 0 :(得分:3)
这是我成功的唯一方法:
[CATransaction begin];
[CATransaction setAnimationDuration:.5];
[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];
[CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
yellowWord.foregroundColor =[UIColor redColor].CGColor;
[CATransaction commit];
希望它会帮助某人