动画CATextLayer的foregroundColor属性

时间:2011-02-27 19:49:15

标签: ios core-animation calayer

我希望动画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"
 ];
}

一如既往地谢谢。

1 个答案:

答案 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];

希望它会帮助某人