【问题标题】:How to get the actual size of transformed CALayer?如何获得转换后的 CALayer 的实际大小?
【发布时间】:2011-04-04 11:07:37
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: core-animation calayer catransform3d


    【解决方案1】:

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

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

    Core Animation Programming Guide 中提到了这一点:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-18
      • 1970-01-01
      • 2012-08-10
      • 1970-01-01
      相关资源
      最近更新 更多