objective-c - 在两个 CAGradientLayer 颜色设置之间连续淡入淡出?

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

我想让 UIButton 闪烁,我计划通过在 CAGradientLayer 上的两个颜色阵列之间缓慢淡出来实现。有没有办法来回重复动画?

最佳答案

是的。在 Core Animation 中,您创建一个明确的动画来执行淡入淡出,然后您还必须为动画对象设置另外两个属性:autoReversesrepeatCount(要执行的重复次数,每 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/

相关文章:

ios - Xcode CoreData 添加关系 - Xcode 14.0.1 中缺少编辑器开关

ios - 无法从 iOS 发送 facebook apprequest,因为 FBSession.activeSession.isOpen 给出 false

iphone - MFI结束了吗?通往Arduino和其他设备的电缆

c++ - C++和Objective C中 "static"的含义有什么区别?

objective-c - Swift 核心数据 - 具有不同结果的请求

ios - 导航到 UIViewController 时,如何将其旋转到其支持的界面方向?

iphone - UIWebView 崩溃

iphone - TableView :didSelectRowAtIndexPath not firing after swipe gesture is called

ios - 如何在关闭 ViewController 后继续倒计时

ios - uinavigationcontroller 在 iOS 中恢复状态时失去色彩