2013-04-23 72 views
1

我旋轉UIView的基礎上的加速度計數據,它工作正常,除了UIView變形。我不知道如何解決這個問題。以下是我的didAccelerate方法中的代碼:旋轉UIView不變形

float kFilteringFactor = 0.175; 
CGFloat x = acceleration.x * kFilteringFactor + acceleration.x * (1.0 - kFilteringFactor); 
CGFloat y = acceleration.y * kFilteringFactor + acceleration.y * (1.0 - kFilteringFactor); 
float radians = M_PI - atan2(y, x); 
[_horizonView setTransform:CGAffineTransformMakeRotation(radians)]; 

我是否正確執行了旋轉?我已經改變了Xcode的原點,但似乎沒有效果。

回答

1

發生什麼樣的變形?我認爲輪換很好。

+0

如果我把UIView作爲中間的一個矩形,它會縮小,直到45度完全消失,然後增長> 45度。我認爲我可能需要首先翻譯成原點,然後旋轉並翻譯回去,但是當我這樣做時,旋轉根本不會發生。 – 2013-04-23 18:48:45

+0

旋轉應用於UIView圖層的anchorPoint,該圖層的中心(0.5,0.5)。所以不需要額外的翻譯。我用一個簡單的紅色矩形模擬了你的代碼,它可以做你想做的。你在'_horizo​​nView'上做了什麼額外的修改? – Peteee24 2013-04-23 20:37:35

+0

無。我只是從頭開始重新創建項目,以消除任何奇怪的變化,但它仍然是一樣的。我無法想象它。這可能與ViewController的座標系有關嗎?我所做的只是添加一個視圖,設置它的背景,在我的ViewController中創建一個視圖,然後用上面的代碼實現didAccelerate方法,並在viewDidLoad中初始化加速度計。 – 2013-04-24 08:40:59