2013-01-03 55 views
2

我有一個看起來像輪子的圖像視圖。該視圖檢測每個彩色部分的觸摸事件。在旋轉圖像時保持圖像可讀的文字

我現在的問題是,當我旋轉這個輪子時,視圖頂部的UILabel也需要旋轉,以便文本仍然是水平的和人類可讀的。

在父視圖旋轉時旋轉標籤的最佳方式是什麼?

這就是我現在想,它無法正常旋轉......

CGAffineTransform textTransform = CGAffineTransformRotate(newTransform, newAngle * -1); 
+0

您是否嘗試過製作聚合視圖,其中標籤是圖形輪視圖的子視圖? – bryanmac

回答

3

想必你申請一個旋轉變換旋轉輪。如果標籤是輪子視圖的子視圖,則它們的中心被固定在輪子的正確位置(因爲視圖位於其中心的超視圖中),並且它們將與其一起移動。同時,將反轉轉換應用於標籤。旋轉發生在每個標籤的中心周圍。所以每個標籤都保留在正確的位置並保持直立。

事後考慮 - 也要確保你沒有在這些標籤上使用自動佈局。 Autolayout打破了視圖轉換。

+0

謝謝,但我確實嘗試過......我將添加代碼以向您顯示我現在擁有的內容。這是設置文本轉換的錯誤方法嗎? – miex

+0

是的。看看你自己的代碼並考慮一下。假設新的變換是30度。現在,您正在進行30度旋轉變換並以另一種方式旋轉30度。這是一個零度轉換。所以你對標籤什麼都不做,而且它們隨着輪子旋轉 - 就是你不想要的。按照我的建議 - 從您應用於車輪的變換中獲得逆變換,並將其應用於每個標籤。 – matt

+0

謝謝馬特 - 這確實結束了工作。我的代碼反轉角度是正確的,因爲它是弧度而不是度數。我做錯了是初始化下一個textTransform使用parent.transform而不是錯誤的label.transform ... – miex