如何获得转换CALayer的实际大小?

时间:2011-04-04 11:07:37

标签: core-animation calayer catransform3d

我有一个200x200 pixel CALayer个实例,我已经应用了两个转换:

  • 缩小至50%
  • 应用了3D视角

现在我想将变换后的图层与另一个图层对齐。要做到这一点,我需要转换层的大小(宽度和高度)。

问题在于layer.bounds仍为图层返回200x200,但由于透视变换,实际可见宽度较小且高度超过200。顺便说一下,表示层的边界返回0

有什么方法可以确定转换后的CALayer的确切大小,就像它在屏幕上绘制一样吗?

谢谢,Mark。

1 个答案:

答案 0 :(得分:11)

最后发现:应用转换时bounds保持不变,但图层的frame属性发生了哪些变化。

解决方案是使用layer.frame.size代替layer.bounds.size

核心动画编程指南中提到了这一点:

  

图层有一个隐式框架,它是position,bounds,anchorPoint和transform属性的函数。