iOS:64位的Core Animation问题还有解决方案吗?

问题描述:

我们最近将应用程序转换为完整的64位兼容性,现在整个应用程序的CABasicAnimations在64位设备(在所有设备上工作多年的动画)上都失败了。有人问到here,但没有收到任何回应。目前关于这个问题的知识是什么?我找不到很多有关它的文字。iOS:64位的Core Animation问题还有解决方案吗?

我不确定这是否回答您的问题,但它可能是相关的。使用UIViewAnimationOptionBeginFromCurrentState不再打断现有的动画作为iOS的8取消动画现在

UIView动画必须与removeAnimationForKey明确完成。

也许如果您更详细地描述了“失败”意味着什么,并提供了演示错误行为的简短代码片段,则可能会对解决方案有不同的洞察。

+0

该行为是非常不可预测的,动画基本上闪烁并在屏幕上出现异常。代码运行通过一个非常复杂的动画框架,所以我不能真正发布个别示例,但我会研究上述内容。不过,我会注意到,这是64位设备专有的,并且只有当arm64被添加到有效的arch时才会发生,所以我不认为上述问题。 – puzzl 2015-02-05 22:18:01

只是在黑暗中拍摄:从32位到64位的时候去的问题的常见原因是有关size of data types such as floats, integers, longs

动画来讲,可能是罪魁祸首的浮点值。如果你在代码中使用了float,那么也许你运气不好。实际上,框架预计CGFloat表示浮点数,所以编译器会进行这种隐式转换。另一方面,float没有改变它们的大小,而CGFloat有(从32到64位)。这可以解释你遇到的普遍问题。