ios - CAAction 的 runActionForKey :object:arguments: arguments take? 可以取什么值

标签 ios macos core-animation quartz-core

CAAction 协议(protocol)的文档似乎有点少,而且很少在书籍和博客中评论。其唯一方法 runActionForKey:object:arguments: 的参数有点神秘。根据我的经验,“object”参数似乎总是 CALayer,而“arguments”字典总是 nil

似乎该协议(protocol)可能被设计为在 Core Animation 中的多个地方使用,否则为什么不定义层参数的类型,为什么会有从未使用过的额外字典?但据我所知,它只与 CALayer 一起使用。那是对的吗?有没有人举出上述结论不正确的例子?

最佳答案

CAAction 的唯一实际用途是作为隐式动画的基础——也就是说,它是像这样的表达式机制的核心

myLayer.position = // ... whatever ...

神奇地能够动画层的位置变化(假设它不是 UIView 的主要底层)。

有关 Action 搜索机制的完整解释,请参阅我的书:

http://www.apeth.com/iOSBook/ch17.html#_actions_2

关于ios - CAAction 的 runActionForKey :object:arguments: arguments take? 可以取什么值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20618686/

相关文章:

iphone - CAGradientLayer 中的 CABasicAnimation 不起作用 - 我做错了什么?

iphone - 带有模糊和斜角的画笔效果

ios - 在 XCode : specified item could not be found in the keychain 中签署应用程序

objective-c - 如何实现像 Finder 中那样的搜索字段

cocoa-touch - CAAnimation跟踪进度

swift - 彩色动画

ios - 文本字段上的 Nativescript textFieldDidEndEditing 委托(delegate)

ios - ContainerViewController popView 的 funky 内部的 UINavigationController

objective-c - 在 Xcode5 中链接依赖于 'Build' 或 'Debug' 模式的框架?

objective-c - 绘制栏中具有不同颜色的 NSProgressIndicator