我正试图利用Calayers在我的一个应用程序中创建一个3D风格的效果。然而,似乎嵌套的炉墙没有透视图应用于它们。
要用伪代码来演示,如果我有一个应用透视图的层,如下所示:
CATransform3D subLayerTransform = CATransform3DIdentity;
/* set perspective */
subLayerTransform.m34 = -0.002;
superLayer.sublayerTransform = subLayerTransform;
添加然后添加一个图层,如下所示:
CALayer *sublayer = [CALayer layer];
sublayer.frame = layerFrame;
sublayer.contents = (id)[image CGImage];
[superLayer addSublayer: sublayer];
透视图按预期应用。但是,如果我试着把这些层
CALayer *sublayer = [CALayer layer];
[superLayer addSublayer: sublayer];
CALayer *nestedlayer = [CALayer layer];
nestedlayer.frame = layerFrame;
nestedlayer.contents = (id)[image CGImage];
[sublayer addSublayer: nestedlayer];
旋转时嵌套层是平的。
这就好像超级层只将转换应用于层层次结构中它正下方的层。是这样吗?还是我做错了什么?