3

パースペクティブを取得するために m34 変換プロパティを変更しているレイヤーがあります。zPosition を変更するとサイズが変更されると予想していましたが (遠くに表示されるため)、zPosition プロパティを設定するとサイズは変更されませんが、CATransform3DTranslate を使用すると変更されます。

どうしてこれなの?次の違いは何ですか。

CATransform3D transform = CATransform3DIdentity;
transform.m34 = 1.0 / -4000;
myLayer.transform = transform;
myLayer.zPosition = -500;

CATransform3D transform = CATransform3DIdentity;
transform.m34 = 1.0 / -4000;
transform = CATransform3DTranslate(transform, 0, 0, -500);
myLayer.transform = transform;

後者は期待どおりに機能しますが、最初の方法がうまくいかない理由を理解したいと思います。

4

1 に答える 1

8

zPosition は、透視図ではなく、兄弟レイヤーの描画順序のためのものです。これを使用して、レイヤーを追加/削除せずに「前面に移動」/「背面に移動」効果を得ることができます。

于 2012-11-27T12:45:24.943 に答える