获得一个点的'Z值'

时间:2013-11-14 16:43:17

标签: ios objective-c coordinates calayer cgrect

我正在实施一个应用程序',其中我使用一些'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值。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您使用Z值来引用zPosition,可以通过调用任何zPosition上的CALayer属性找到该值。它默认为0.

来自文档:

  

更改此属性的值会更改前后对齐   在屏幕上排序图层。这会影响图层的可见性   其框架矩形重叠。

     

此属性的值以磅为单位测量。