2012-10-17 35 views
0

如何將我的視圖的旋轉重置爲零,同時保持該視圖上的其他轉換不變。將UIView的旋轉重置爲0

我不能使用:

[myView setTransform:CGAffineTransformIdentity]

,因爲它會休息,其他所有的變換過。

或者,我只是想視圖的框架,如果它的旋轉爲0

回答

1
myView.transform = CGAffineTransformRotate(myView.transform, -currentRotationAngle); 

這需要當前變換,並將其旋轉到0度

編輯:我想你會需要通過當前的旋轉值的逆旋轉,而不僅僅是將其設置爲0

+0

'CGAffineTransformRotate'在這裏沒有幫助,因爲它將該角度的旋轉應用於現有旋轉。 –

+0

是否它不會將旋轉返回到零,如果您通過例如-M_PI_2如果當前旋轉是M_PI_2? – wattson12

+0

當然,但你必須知道當前的旋轉,以便像這樣重置它。 –

0

要重新轉動,同時保持過渡,你可以試試這個代碼:

CGAffineTransform inverse = CGAffineTransformInvert(myView.affineTransform); 
    inverse.tx = 0; 
    inverse.ty = 0; 
    myView.transform = inverse;