2012-05-24 23 views
0

我有一個問題,我碰到了與UIView方法convertRect: fromView:方法。這裏的情況是: 我覆蓋了UIView類來創建一個隨用戶移動而旋轉的視圖(與TaskRabbit微調器非常相似)。爲了創建旋轉,在我添加了一個額外的視圖到我的子類視圖,並旋轉了該視圖。旋轉的視圖包含明顯與旋轉的子視圖一起旋轉的附加子視圖。問題是,子視圖旋轉後,我需要找到這些附加子視圖的位置,而不是旋轉的視圖。要做到這一點,在我的UIView課,我有以下幾點:convertRect fromView不能返回正確的幀後旋轉

[self convertRect:currentView.frame fromView:rotationView]; 

然而,當我打印出來的轉換後的矩形的框架,座標是不準確的。有沒有人遇到這個問題,在視圖旋轉後convertRect: fromView:不準確?

編輯

具體而言,關於點是不準確的,我甚至看不到有什麼應該和什麼是-即關閉由特定的角度之間的關係,X/Y翻轉等例如,點應(25,195)在(325.25,273.16)

+0

你的意思是不準確?像一對夫婦像素或X/Y交換或別的東西? –

回答

1

我假設你是通過應用旋轉你的意見轉化爲他們(無論是CGAffineTransform到視圖或返回層到CATransform3D)。這是什麼導致您的框架問題。爲UIView frame文檔說:

警告如果transform屬性不是恆等變換,這個屬性的值是不確定的,因此應被忽略。

正如您已經看到的,幀的值是未定義的。儘管如此,您仍然可以使用centerbounds屬性。

+0

雖然這可能是相關的,但它仍不能解決問題。我已經嘗試了使用[self convertView:currentView.center fromView:rotationView]的相同過程,但仍然得到了錯誤的觀點。 – coder

+0

這可能是因爲您正在轉換的視圖具有未定義的框架。 –