3

我有一个图层,我正在修改它的 m34 变换属性以获得透视。我原以为通过更改 zPosition,大小会改变(因为它看起来更远)但是当我设置 zPosition 属性时,大小不会改变,但是当我使用 CATransform3DTranslate 时会改变。

为什么是这样?以下内容有什么区别:

CATransform3D transform = CATransform3DIdentity;
transform.m34 = 1.0 / -4000;
myLayer.transform = transform;
myLayer.zPosition = -500;

CATransform3D transform = CATransform3DIdentity;
transform.m34 = 1.0 / -4000;
transform = CATransform3DTranslate(transform, 0, 0, -500);
myLayer.transform = transform;

后者按我的预期工作,但我想了解为什么第一个没有。

4

1 回答 1

8

zPosition 仅用于兄弟图层的绘制顺序,而不用于透视绘制:您可以使用它来获得“放在前面”/“放在后面”的效果,而无需添加/删除图层。

于 2012-11-27T12:45:24.943 回答