在两个CAGradientLayer颜色设置之间连续淡化?

时间:2011-05-27 18:59:45

标签: objective-c cocoa-touch ios core-animation gradient

我想要一个UIButton脉冲,我打算通过在CAGradientLayer上的两个颜色数组之间缓慢淡入来实现这一点。有没有办法来回重复动画?

1 个答案:

答案 0 :(得分:2)

是。在Core Animation中,您可以创建一个显式动画来执行淡入淡出,然后还必须为动画对象设置另外两个属性: autoReverses repeatCount (要执行的重复次数,每2次重复将带您完成动画并再次返回)。在您的情况下,您将以下行添加到设置动画对象的代码中(我将调用对象 anim ):

 anim.repeatCount = HUGE_VALF;
 anim.autoReverses = YES;

HUGE_VALF会导致动画永远重复,但您可以指定一个大于可能发生的任何重复次数的数字。

这些属性未显示在CAAnimation对象或其子类的文档中,因为它是在CAAnimation及其子类采用的CAMediaTiming协议中定义的。但是您可以看到CAMediaTiming协议的示例和讨论,因为它适用于动画类型和时序编程指南时序,时间空间和CAAnimation 部分中的CAAnimation对象。 Apple的开发者网站或通过XCode提供的文档。

(许多人似乎发现Apple的核心动画文档特别难以理解,直到您对不同部分有了全面的了解。我基本上知道你必须做什么,但仍然发现很难记住到底在哪里找到关于涉及的财产的实际信息。)