パースペクティブを取得するために 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;
後者は期待どおりに機能しますが、最初の方法がうまくいかない理由を理解したいと思います。