Я реализую приложение, в котором я использую некоторые «CALayers» для создания некоторых форм. Например:Получите значение «Z» точки
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;
Но я хочу, чтобы получить значение Z в точке, которая находится на testLayer и назван testLayerPoint (типа «UIView» с размером 1x1), потому что, когда я хочу, чтобы спроецировать координаты в плане основного вида, как это:
CGRect rectTest = [testLayerPoint.layer convertRect:[[testLayerPoint.layer presentationLayer] frame] toLayer:self.view.layer];
код:
NSLog(@"%f", rectTest.x);
не дает правильных координат ... Так что я хочу получить значение Z напрямую.
Спасибо!
Я попытался инициировать свой слой со значением zPosition, но он не изменился с течением времени, потому что «ориентир» прикреплен к моему трансформирующему слою ... – user2947788