【发布时间】:2010-07-07 21:59:42
【问题描述】:
我在 X 轴上旋转一个 CALayer,但即使它在 Z 轴上发生位移,它也使用 Z = 0 作为旋转轴?
有没有办法告诉它使用平面的底部作为轴?
谢谢!
【问题讨论】:
我在 X 轴上旋转一个 CALayer,但即使它在 Z 轴上发生位移,它也使用 Z = 0 作为旋转轴?
有没有办法告诉它使用平面的底部作为轴?
谢谢!
【问题讨论】:
CALayer 的变换使用图层的锚点作为其原点。您可以尝试调整图层的anchorPoint 和anchorPointZ 属性。
【讨论】:
transform 属性是CATransform3D,但它有一个-affineTransform 方法,该方法返回最能代表CATransform3D 的CGAffineTransform。还有CATransform3DIsAffine()、CATransform3DMakeAffineTransform()、CATransform3DGetAffineTransform()等函数。
CGAffineTransform 类型)是 2D 变换,但仿射变换实际上映射在两个向量空间之间,所以 CATransform3D 是仿射变换3 个维度。