0
我有一个CMMotionManager设置与deviceMotionUpdateInterval设定在像100 HZ这样:CABasicAnimation性能问题阻止
motionManager = [[CMMotionManager alloc] init];
motionManager.deviceMotionUpdateInterval = 1/100.0;
我使用像这样的模块,从陀螺仪获取偏航值
[motionManger startDeviceMotionUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMDeviceMotion *motion, NSError *error) { //get yaw values}];
我也有一个CABasicAnimation,在同一个区块中进行动画制作。我将每个动画的持续时间设置为0.01秒。动画是一个圆形进度条,表示该设备旋转了多少度。这可以在iPhone 5上正常工作。但是在iPhone 4和4S等较旧的设备上,进度条被填充和设备旋转的实际程度值之间存在显着的延迟。基本上,如果电话已经快速旋转了180度,进度条的填充速度要慢得多,才能达到180度。在iPhone 5上的相同情况下,进度条将立即处于180度的角度。
我的问题是,我可以做些什么来提高性能,以便动画像iPhone 5一样平滑和瞬间准确?
使用工具来弄清楚发生了什么。您可能正在争夺CPU。 iPhone 5拥有双核心CPU,因此它确实是多线程的。 iPhone 4,我猜测,动画无法启动,因为我们一直在通过对你的偏航更新块的呼叫而受到打击。 – matt 2013-03-22 20:50:46
你能建议在仪器中准确地监测什么吗? CPU时间?动画帧率? – thisiscrazy4 2013-03-22 22:08:44
是的,我认为你可以做一个时间分析器,看看什么是放慢动画。 – matt 2013-03-22 23:46:36