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 上にあり、testLayerPoint (サイズ 1x1 の「UIView」タイプ) という名前のポイントの Z 値を取得したいのは、次のような主ビューの平面図に座標を投影したい場合です。

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

コード :

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

正しい座標が得られない...だから、Z値を直接取得したい。

ありがとう !

4

1 に答える 1

0

Z 値で zPosition を参照している場合は、 any のzPositionプロパティを呼び出すことで見つけることができますCALayer。デフォルトは 0 です。

ドキュメントから:

このプロパティの値を変更すると、画面上のレイヤーの前後の順序が変更されます。これは、フレームの四角形が重なっているレイヤーの可視性に影響を与える可能性があります。

このプロパティの値はポイント単位で測定されます。

于 2013-11-14T16:46:52.217 に答える