0

我正在实现一个应用程序,在该应用程序中我使用一些“CALayers”来创建一些表单。例如 :

testLayer = [CALayer layer];
testLayer.frame = layerRect;
testLayer.position = self.view.center;

CGFloat degrees = 90.0;
CGFloat radians = DegreesToRadians(degrees);
CATransform3D rotation = CATransform3DMakeRotation(radians, 0.0, 1.0, 0.0);
CATransform3D translation = CATransform3DMakeTranslation(Layer_Size/2, 0.0, Layer_Size/-2);
CATransform3D position = CATransform3DConcat(rotation, translation);
testLayer.transform = position;

该层添加在:

transformLayer = [CATransformLayer layer];
[transformLayer addSublayer:testLayer];
transformLayer.anchorPointZ = Layer_Size/-2;

但是我想获取 testLayer 上一个点的 Z 值,该点被命名为 testLayerPoint(类型为“UIView”,大小为 1x1),因为当我想将坐标投影到主视图的计划中时,如下所示:

CGRect rectTest = [testLayerPoint.layer convertRect:[[testLayerPoint.layer presentationLayer] frame] toLayer:self.view.layer];

编码 :

NSLog(@"%f", rectTest.x);

给出的坐标不正确……所以我想直接得到 Z 值。

谢谢 !

4

1 回答 1

0

如果通过 Z 值您指的是 zPosition,则可以通过调用zPositionany 上的属性来找到它CALayer。它默认为 0。

从文档:

更改此属性的值会更改屏幕上图层的从前到后的顺序。这会影响框架矩形重叠的图层的可见性。

此属性的价值以点为单位。

于 2013-11-14T16:46:52.217 回答