4

棚に置かれた CD の外観をシミュレートしようとしています。各 CD は、本棚を見たときの本と同じように、ある角度から見える必要があります。コア アニメーション変換を使用します。問題は、結果が Coverflow のように見えることです。つまり、画面上の位置に基づいて要素が異なって見えることです。

これが実際にどのように見えるか、どのように見せたいかのスクリーンショットです。

それはどのように見え、どのように見えるべきか

CALayers を使用し、2 つの基本的な変換を適用しました。

1) 回転するには:

CATransform3DMakeRotation(DegreesToRadians(60), 0, 1, 0);

2) パースペクティブを追加するには:

CATransform3D perspective = CATransform3DIdentity;
perspective.m34 = -1.0/400;
self.layer.sublayerTransform = perspective;

すべてのレイヤーに同じ変換を適用して、すべて同じように見せるにはどうすればよいですか? Core Animation は仕事に適したツールですか?

ありがとう、マーク。

4

1 に答える 1

6

transform親レイヤーの ではなく、個々の要素の に透視変換を含めてみてくださいsublayerTransform

CATransform3D perspective = CATransform3DIdentity;
perspective.m34 = -1.0/400;
CATransform3D transform = CATransform3DRotate(perspective, DegreesToRadians(60), 0, 1, 0);
element.layer.transform = transform;
于 2011-02-15T06:11:33.383 に答える