当前位置 : 主页 > 手机开发 > ios >

ios – 设置图层的zPosition与通过CATransform3DTranslate更改图层之间的区别

来源:互联网 收集:自由互联 发布时间:2021-06-11
我有一个图层,我正在修改它的m34转换属性以获取透视图. 我原本期望通过更改zPosition,大小会改变(因为它看起来更远)但是当我设置zPosition属性时,大小不会改变,但是当我使用CATransform3D
我有一个图层,我正在修改它的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;

后者的作用与我的期望相符,但我想理解为什么第一个没有.

zPosition仅适用于兄弟图层的绘制顺序,而不适用于透视图:您可以使用它来获得“带到前面”/“发送到后面”效果,而无需添加/删除图层.
网友评论