SO (削除済み) で最近尋ねた関連する質問に対する回答を得るためにテスト プロジェクトを作成した後、カスタムUIView
サブクラス内でレイヤーを回転させるときに、似たような問題ではありますが、別の問題に遭遇しました。
iPhone シミュレーター セッションのビデオは、ここで見ることができます。
レイヤーは、必要に応じて z 軸を中心に回転するのではなく、対角線で x/y 軸を中心に回転しているように見えます。
ローテーションを実行するコードは、setAngle:
次のように呼び出されるビュー セッター メソッド内にあります。
_imageLayer.transform = CATransform3DMakeRotation(angle / 180.0 * M_PI, 0.0, 0.0, 1.0);
(ここangle
で度です)。
完全な Xcode プロジェクトは、ここから入手できます。
元のSOの質問は、デバイスの向きが変更された後にのみこの動作を示しているため、最初に思ったよりも理解にギャップがあるようです(OSXのバックグラウンドから来て、レイヤーを何度も使用しているため、そのような問題はないと予想していました)。
私の質問は、レイヤーが z 軸を中心に希望どおりに回転しないのはなぜですか?