2011-04-04 26 views
6

我必須我已經應用了兩個變換的200x200 pixelCALayer實例:如何獲得轉換CALayer的實際大小?

  • 按比例縮小到50%
  • 施加的3D透視

現在我要對齊與變換層另一層。爲此,我需要轉換圖層的大小(寬度和高度)。

問題是layer.bounds對於圖層仍然返回200x200,但由於透視變換,實際可見寬度較小,高度大於200。順便說一下,表示層的邊界返回0

有沒有什麼辦法可以像我們在屏幕上繪製的那樣精確地確定轉換後的CALayer的尺寸?

謝謝,馬克。

回答

11

最後發現:應用轉換時bounds保持不變,但圖層的frame屬性發生了什麼變化。

解決方法是使用layer.frame.size而不是layer.bounds.size

此核心動畫編程指南中提及:

層具有一個隱含的幀也就是位置,邊界,anchorPoint的功能,並轉換屬性。

相關問題