2013-11-14 3 views
0

Я реализую приложение, в котором я использую некоторые «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 напрямую.

Спасибо!

ответ

0

Если по значению Z вы ссылаетесь на zPosition, это можно найти, позвонив по адресу zPosition на любом CALayer. По умолчанию оно равно 0.

Из документов:

Изменение значения этого свойства изменяет переднюю к задней упорядоченность слоев на экране. Это может повлиять на видимость слоев , прямоугольники которых перекрываются.

Значение этого свойства измеряется в точках.

+0

Я попытался инициировать свой слой со значением zPosition, но он не изменился с течением времени, потому что «ориентир» прикреплен к моему трансформирующему слою ... – user2947788

Смежные вопросы