我在使用CoreAnimation在iPhone模拟器上连续执行多个动画时遇到了一些问题。我在我的应用程序中有很多层,我设置了动画 - 这些图层都是与我的应用程序中的UIView相关联的图层的子图层。在我为第一个子层的位置设置动画后(使用显式动画 - CAKeyFrameAnimation),我在animationDidStop委托方法中执行以下操作:
当我运行我的应用程序时,我看到第一个动画发生,然后图层被删除,图层被添加回新位置的新内容,但我从未在步骤2中看到2个图层的动画。有趣的是,我确实为事务中的2层动画中的每一层获得了animationDidStop调用。由于我接到这些调用,似乎动画正在出现,但动画不会出现在屏幕上。我也尝试删除该事务,以防我没有正确设置并看到相同的结果。
是否可以以这种方式将多个动画链接在一起?
非常感谢任何见解或建议。在此先感谢您的帮助。
答案 0 :(得分:0)
我的第一个猜测是你将animationDidStop中的动画添加到不再有效的图层。当然,除非你发布一些代码,否则我无法知道。
其次,你应该看一下timing documentation for Core Animation作为你的方式,虽然功能,但可能不是最好的方式。具体来看看这一节:
时序协议提供了手段 开始动画一定 持续时间的秒数 使用两个属性:beginTime和 时间偏移。 beginTime指定 进入的秒数 动画应该开始的持续时间 并缩放到时空 动画的图层。 timeOffset 指定一个额外的偏移,但是 在当地活跃时间表示。都 将值组合起来确定 最终的起始偏移。