2014-09-26 85 views
0

我有以下代碼來旋轉指南針。此代碼在iPhone 6和iPhone 5上的iOS 8上均可正常工作。iOS CABasicAnimation animationWithKeyPath:@「transform.rotation」wobble

但是,在iOS 7.1.2上使用iPhone 5S嘗試此操作時,圖像偏離了Z軸,看起來隨着它旋轉而擺動/浮動。

正如我所說的,這種情況不會發生在iPhone 5或6,這兩者都運行iOS 8

誰能提供任何意見?

float oldRad = -manager.heading.trueHeading * M_PI/180.0f; 
float newRad = -newHeading.trueHeading * M_PI/180.0f; 
CABasicAnimation *theAnimation; 
theAnimation=[CABasicAnimation animationWithKeyPath:@"transform.rotation"]; 
theAnimation.fromValue = [NSNumber numberWithFloat:oldRad]; 
theAnimation.toValue=[NSNumber numberWithFloat:newRad]; 
theAnimation.duration = 0.5f; 
[compassimage.layer addAnimation:theAnimation forKey:@"animateMyRotation"]; 
compassimage.transform = CGAffineTransformMakeRotation(newRad); 

回答

0

好吧,我意識到這是一個AutoLayout問題。有趣的是,這個問題從iOS 6開始,並繼續發展到iOS 7.它看起來不會影響我所看到的iOS 8!

修復的選擇: - 1)添加中心x &Ÿ約束 或 2)禁用自動版式

兩者產生期望的結果,但我選擇了1號!