我想让 UIButton
闪烁,我计划通过在 CAGradientLayer
上的两个颜色阵列之间缓慢淡出来实现。有没有办法来回重复动画?
最佳答案
是的。在 Core Animation 中,您创建一个明确的动画来执行淡入淡出,然后您还必须为动画对象设置另外两个属性:autoReverses 和 repeatCount(要执行的重复次数,每 2 次重复将带您完成动画并再次返回)。在您的情况下,您需要将以下几行添加到设置动画对象的代码中(我将调用该对象 anim):
anim.repeatCount = HUGE_VALF;
anim.autoReverses = YES;
HUGE_VALF 会导致动画永远重复,但您可以指定一个大于可能发生的任何重复次数的数字。
这些属性没有显示在 CAAnimation 对象或其子类的文档中,因为它是在 CAAnimation 及其子类采用的 CAMediaTiming 协议(protocol)中定义的。但是您可以在 动画类型和计时编程指南 的计时、时空和 CAAnimation 部分中查看 CAMediaTiming 协议(protocol)的示例和讨论,因为它适用于 CAAnimation 对象Apple 的开发者网站或通过 XCode 提供的文档中。
(许多人似乎发现 Apple 的 Core Animation 文档特别难以理解,除非你对不同的部分有一个很好的整体掌握。我基本上知道你必须做什么,但仍然发现很难记住在哪里可以找到有关所涉及属性的实际信息。)
关于objective-c - 在两个 CAGradientLayer 颜色设置之间连续淡入淡出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6156572/