在两个 CAGradientLayer 颜色设置之间连续渐变?
Posted
技术标签:
【中文标题】在两个 CAGradientLayer 颜色设置之间连续渐变?【英文标题】:Fade continuously between two CAGradientLayer color set-ups? 【发布时间】:2011-05-27 18:59:44 【问题描述】:我想让UIButton
产生脉冲,我计划通过在CAGradientLayer
上的两个颜色阵列之间慢慢淡化来实现这一点。有没有办法来回重复动画?
【问题讨论】:
【参考方案1】:是的。在 Core Animation 中,您创建一个显式动画来执行淡入淡出,然后您还必须为动画对象设置另外两个属性:autoReverses 和 repeatCount(要执行的重复次数,每 2 次重复将带您完成动画并再次返回)。在您的情况下,您将在设置动画对象的代码中添加以下行(我将调用该对象 anim):
anim.repeatCount = HUGE_VALF;
anim.autoReverses = YES;
HUGE_VALF 会导致动画永远重复,尽管您可以指定一个大于任何可能发生的重复次数的数字。
这些属性没有显示在 CAAnimation 对象或其子类的文档中,因为它是在 CAAnimation 及其子类采用的 CAMediaTiming 协议中定义的。但是您可以在 Animation Types and Timing Programming Guide 的 Timing, Timespaces, and CAAnimation 部分查看 CAMediaTiming 协议的示例和讨论,因为它适用于 CAAnimation 对象。 Apple 的开发者网站或通过 XCode 提供的文档中。
(许多人似乎发现 Apple 的 Core Animation 文档特别难以理解,除非您对不同的部分有一个很好的整体掌握。我基本上知道您必须做什么,但仍然很难记住确切的位置所涉及属性的实际信息。)
【讨论】:
以上是关于在两个 CAGradientLayer 颜色设置之间连续渐变?的主要内容,如果未能解决你的问题,请参考以下文章
iOS UITableView:使用 CAGradientLayer 将背景颜色分配为渐变
如何在 iOS 中使用 CAGradientLayer 在 UITableViewCell 中设置多个渐变颜色?
我可以通过 IBAction 更改 CAGradientLayer() 颜色吗?