我正在实施一个应用程序',其中我使用一些'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值。
谢谢!
答案 0 :(得分:0)
如果您使用Z值来引用zPosition,可以通过调用任何zPosition
上的CALayer
属性找到该值。它默认为0.
来自文档:
更改此属性的值会更改前后对齐 在屏幕上排序图层。这会影响图层的可见性 其框架矩形重叠。
此属性的值以磅为单位测量。