1

インタラクティブブックエンジンにCALayerを使用していて、CALayerを中心に回転させたいのですが、(ユーザー入力に基づく角度を使用して)回転変換をCALayerに適用すると、レイヤーが伸びて非常に奇妙な方法で移動し、消えます。私がすることは

[CATransaction begin];
[CATransaction setValue: (id) kCFBooleanTrue forKey: kCATransactionDisableActions];
...
layer.transform = CATransform3DMakeRotation(angle, 0, 0, 1);
...
[CATransaction commit];

興味深いことに、角度が M_PI または M_PI/2 の場合、またはスケール変換の場合はすべて問題ありませんが、回転やその他の角度レイヤーが狂ってしまいます。

何が起こっているのか、それを修正する方法を知っている人はいますか?

4

1 に答える 1

2

自分で理由を見つけました:プロパティ.frameの代わりに使用してレイヤーを並行して移動したため.positionです:フレームプロパティ自体は変換に基づいて計算されるため、設定すると「クレイジー」な動作が発生しました。

于 2013-08-07T04:23:31.500 に答える