我在游戏中使用该方法以每秒 60 次的速度CADisplayLink
绘制帧。EAGLView
当我调用UIView
animateWithDuration:
帧率下降到一半时,动画持续时间从 60 到 30 fps。动画结束后,fps 立即回升至 60。
我也尝试使用NSTimer
动画方法而不是CADisplayLink
并且仍然得到相同的结果。
当我在扬声器图标淡出时按下音量按钮时会发生相同的行为,因此它可能正在使用animateWithDuration
. 由于我希望能够在我的应用程序中顺利处理扬声器图标,这意味着我不能只重写我的动画代码以使用除 之外的其他方法animateWithDuration
,而是需要找到一个适用的解决方案。
我知道有一个选项可以减慢模拟器上的调试动画,但是,我在设备上遇到了这个问题,并且没有启用这样的选项。我还尝试使用各种选项,animateWithDuration
例如线性选项和用户交互,但没有一个有改进。
我也知道我可以设计一个引擎,它仍然可以在变化很大的帧速率下工作。然而,这并不是解决这个问题的理想方案,因为游戏需要高 fps。
有人见过或解决过这个问题吗?