我想知道将
CABasicAnimation
添加到图层时键的重要性是什么。
我同时可以看到多个视图。我对每个应用一个函数,使其具有动画效果。总而言之,这个函数做了很多事情,最终结果是:
layer.add(animation, forKey: "jiggle")
当在每个视图上调用动画时,它是否应该有不同的键或其他什么?
医生说:
每个唯一键仅添加一个动画到图层中。
但它没有说明它对于整个应用程序是否应该是唯一的。
关键是每层。整个想法是,在任何给定层上不能有多个具有相同关键点的动画。该键允许您使用
CALayer removeAnimation(forKey:)
从图层中删除动画,或使用 animation(forKey:)
检索动画。
对
key
的 CALayer add(animation:forKey:)
参数的完整评论指出:
标识动画的字符串。每个唯一键仅添加一个动画到图层中。特殊键
自动用于过渡动画。您可以为此参数指定 nil。kCATransition
请注意提及
kCATransition
和 nil
。如果密钥不是每层,那么整个应用程序(甚至系统)中只有一层可以是 nil
或使用 kCATransition
。
将其视为一本字典,其中每一层都有自己的字典。两个不同的层有两个不同的字典,所以不用担心两者之间的关键冲突。