【发布时间】:2012-01-28 00:52:15
【问题描述】:
假设我有 3 个 CALayers(例如,不同颜色的正方形)。 我想执行以下动画:
layer1 同时从位置 A 平移和缩放到位置 B。
一旦 layer1 处于其新位置并具有新的大小,layer2 和 3 就会同时分别从位置 C 和 D 转换到位置 E 和 F。这些层(2 和 3)在转换为 E 和 F 时也会淡入。但是 layer2 也会随着它的平移而缩放,而 layer3 只是平移(但是使用 CAKeyframeAnimation 以便当它到达 F 点时它会产生一点有弹性的上下效果)。
-
对于第 1 层,我可以:
- 创建一个 CABasicAnimation,其唯一设置的持续时间设置为, 说 1,并将其添加到 layer1 以创建一个翻译的关键“转换”
- 缩放变换并将其应用于图层
layer2 与 layer1 相同,但也设置不透明度。
对于 layer3,我会创建一个关键帧动画。并设置不透明度。
从上面:
似乎调用 layer2 setTransform: 后跟 setOpacity: 会导致同时出现动画。但这是确保它们同时进行的正确方法还是我应该使用 CAAnimationGroup 之类的方法?
通过连接矩阵进行平移和缩放是否有意义?使用矩阵而不是设置位置是否有意义?
如何链接这些,以便 layer2 和 layer3 的动画在 layer1 完成之前不会开始,然后 layer2 的变换和不透明度与 layer3 的关键帧和不透明度动画同时发生?
【问题讨论】:
标签: ios core-animation calayer