祝福大家。
有谁知道是否可以从本质上转换CATransition
为显式动画?也就是说,我几乎希望它的行为与它一样——CABasicAnimation
我需要能够创建CATransition
对象,为其设置选项(、、、、、、、等duration
)——然后基本上将其存储以供以后使用并确保它不是t 试图对在对象创建和我实际需要它来为一组属性设置动画的时间点之间发生的事情进行动画处理。timingFunction
delegate
type
fillMode
removedOnCompletion
CATransition
如果我正在使用CABasicAnimation
,我可以轻松地做到这一点,因为在将动画添加到图层之前没有任何动画,并且只有在animationWithKeyPath
toValue/fromValue 之间指定的属性是动画的。但是,CATransition
显然会[CATransaction begin]
在您创建动画对象以捕获属性更改时触发。
我需要做的(如上所述)是创建CATransition
对象,设置上述选项,然后将其收起来,直到我真正需要使用它——此时我将更改它需要动画的实际属性,然后将其添加到适当的CALayer
via addAnimation
。
有谁知道如何安全地做到这一点?
PS:这是因为我的应用程序严重依赖于处理动画依赖关系的自定义动画排队系统。例如,某些东西需要在方向改变发生之前进行动画处理,所以我可以排队约 10 个动画,它们都会触发,方向改变动画对象也会触发 - 但是方向改变动画直到它之前的动画才会触发取决于已经完成。顺便说一句,CABasicAnimation
可以很好地包装成一个排队的动画对象类。CATransition
似乎有点不同,因此上面的问题-我需要能够安全地创建一个动画队列对象,设置一堆CATransition
选项,将其排队,然后在满足所有依赖项(在这种情况下,CATransition
用于方向更改动画)时,稍后实际执行(同时发生各种事情)。
谢谢,-凯文小费