UIView animateWithDuration:减慢动画帧速率

Mic*_*nen 13 animation objective-c nstimer uiview ios

CADisplayLink用来EAGLView在游戏中以每秒60次的方式绘制帧.

当我调用时UIView animateWithDuration:,帧速率下降到正好一半,在动画持续时间内从60到30 fps.一旦动画结束,fps立即上升到60.

我也尝试使用NSTimer动画方法而不是CADisplayLink仍然得到相同的结果.

当扬声器图标淡出时按下音量按钮时会发生相同的行为,因此可能正在使用animateWithDuration.因为我希望能够在我的应用程序中顺畅地处理扬声器图标,这意味着我不能只重写我的动画代码以使用不同的方法animateWithDuration,但需要找到适合它的解决方案.

我知道有一个选项可以减慢模拟器上调试的动画速度,但是,我在设备上遇到这种情况并且没有启用这样的选项.我也尝试使用各种选项,animateWithDuration如线性和用户交互,但没有一个有改进.

我也知道我可以设计一个仍然能够以不同的帧速率工作的引擎.然而,这不是解决该问题的理想方案,因为高fps对于游戏来说是理想的.

有人看过这个问题还是以前解决了?

Cal*_*leb 0

这是一个旧线程,描述了类似的帧速率下降。在这种情况下,问题的原因是添加两个或更多半透明精灵,但我猜想,任何时候您尝试将多个图层组合在一起,您可能会做足够的工作来降低帧速率,并且很可能animateWithDuration会这样做正是这样的事情。