动画CATextLayer的foregroundColor属性

Jon*_*han 5 core-animation calayer ios

我想动画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"
 ];
}
Run Code Online (Sandbox Code Playgroud)

一如既往地谢谢.

sha*_*oga 3

这是我成功做到这一点的唯一方法:

       [CATransaction begin];
       [CATransaction setAnimationDuration:.5];
       [CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];
       [CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
        yellowWord.foregroundColor =[UIColor redColor].CGColor;
        [CATransaction commit];
Run Code Online (Sandbox Code Playgroud)

希望它能帮助某人