我有一个200x200 pixel
CALayer
个实例,我已经应用了两个转换:
现在我想将变换后的图层与另一个图层对齐。要做到这一点,我需要转换层的大小(宽度和高度)。
问题在于layer.bounds
仍为图层返回200x200
,但由于透视变换,实际可见宽度较小且高度超过200
。顺便说一下,表示层的边界返回0
。
有什么方法可以确定转换后的CALayer
的确切大小,就像它在屏幕上绘制一样吗?
谢谢,Mark。
答案 0 :(得分:11)
最后发现:应用转换时bounds
保持不变,但图层的frame
属性发生了哪些变化。
解决方案是使用layer.frame.size
代替layer.bounds.size
。
核心动画编程指南中提到了这一点:
图层有一个隐式框架,它是position,bounds,anchorPoint和transform属性的函数。