我有一个 200x200 pixel
CALayer
我应用了两个转换的实例:
现在我想将转换后的图层与另一图层对齐。为此,我需要转换层的大小(宽度和高度)。
问题是
layer.bounds
仍然返回 200x200
对于图层,但由于透视变换,实际可见宽度较小,高度大于 200
.表示层的边界返回 0
, 顺便一提。有什么方法可以确定转换后
CALayer
的确切大小吗?和屏幕上画的一模一样吗?
最佳答案
终于弄明白了:bounds
应用变换时保持不变,但改变的是图层的 frame
属性(property)。
解决方法是使用 layer.frame.size
而不是 layer.bounds.size
.
这在核心动画编程指南中提到:
Layers have an implicit frame that is a function of the position, bounds, anchorPoint, and transform properties.
关于core-animation - 如何获得转换后的 CALayer 的实际大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5537586/