2012-11-22 68 views
5

我想旋轉UIImageView並保持居中。在下面的圖片中,我想旋轉的箭頭(紅色十字線)中心點與0°箭頭(藍色十字線)的中心點相匹配。使用CGAffineTransformMakeRotation旋轉具有相同中心點的UIImageView

我已經嘗試了各種錨點,但我似乎無法得到它的行爲,因爲我想要的。

// Rotate 
self.arrowRotatedImageView.layer.anchorPoint = CGPointMake(0.5,0.5); 
CGFloat angle = 45 * (M_PI/180); 
self.arrowRotatedImageView.transform = CGAffineTransformMakeRotation(angle); 

我錯過了什麼?我正在通過Apple docs 閱讀,但我一直無法弄清楚。

iPhone screenshot of a rotated arrow on top of a non-rotated arrow

回答

6

原來怪異的旋轉問題涉及到新的iOS 6的自動版式功能。一旦我花了一些時間來了解對齊約束如何工作,我就能夠實現我想要的結果。

如果遇到奇怪的旋轉問題,並且在啓用了自動佈局功能的情況下使用iOS 6,那麼您的約束條件需要調整。

關鍵是垂直和水平居中在其父視圖旋轉下的圖像。

+0

感謝您的回答,同樣的問題已經花了我所有的一天,直到我發現你的答案 – dreampowder

+9

會很好,如果你分享你所瞭解的約束解決問題。 :) –

+2

是的,同上。我正在尋找這個問題。 – huggie

2

我遇到了同樣的問題,我通過將Center X Alignment ConstraintCenter Y Alignment Constraint應用於UIImageView來解決問題。這樣做會阻止圖像從其中心的x和y位置移開。