7

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

  • 缩小到 50%
  • 应用了 3D 透视图

现在我想将转换后的图层与另一图层对齐。为此,我需要转换层的大小(宽度和高度)。

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

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

4

1 回答 1

11

终于弄清楚了:bounds应用转换时保持不变,但改变的是图层的frame属性。

解决方案是使用layer.frame.size而不是layer.bounds.size.

这在核心动画编程指南中提到:

层有一个隐含的框架,它是位置、边界、锚点和变换属性的函数。

于 2011-04-05T06:54:12.233 回答