CAKeyframeAnimation和Sprite Sheet动画问题

问题描述

| 我有一个Sprite工作表的contentRects属性的CAKeyframeAnimation来在CALayer中显示动画。大部分时间都可以正常工作,但偶尔我会在一帧中看到精灵板的错误部分。 CAKeyframeAnimation设置为离散模式,并检查所有坐标。在我看来,CAKeyframeAnimation有时会错过关键帧,而向我显示的只是我的Sprite工作表的中心部分,而不是它假定根据提供的contensRect数组切出的部分。如何解决以上问题?同样在同一主题上,如何在一般情况下调试CAKeyframeAnimation并了解发生了什么情况? 谢谢!     

解决方法

        为了解决这个问题,我将动画包装在CATransaction中,并暂时禁用了所有图层操作:
[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions]; // we need to disable all layer actions temporarily

.............. the rest of animation code ...............

[CATransaction commit];
谢谢Apple的文档!     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...