CTransform3D回転されたビューの端の深さ

私は回転されるUIImageViewを持っています。ユーザーが90°の位置に回転すると、ビューには深さがないことは明らかです。 90度で紙を見るのと同じように。

使ってます:

// Rotate

CATransform3D rotationAndPerspectiveTransform2 = CATransform3DIdentity;
rotationAndPerspectiveTransform2.m34 = 1.0/-400;
rotationAndPerspectiveTransform2 = CATransform3DRotate(rotationAndPerspectiveTransform2, M_PI, 1.0f, 0.0f, 0.0f);

どのように私はビューにいくつかの深さを追加することができますので、それは90°にヒットすると、より平坦なビューではなく3Dオブジェクトのようなエッジがありますか?

4
ええ、私はその効果のレクリエーションを見ましたが、それは恐ろしいものでした。その視点は非常にオフでした。
追加された 著者 Nic Hubbard,
それは本当に簡単には聞こえません。レイヤを押し出す方法が必要です。
追加された 著者 Nic Hubbard,
+1大きな質問。私はいつもAppleがiBooksのiBooks StoreにフリップするときにAppleがどのようにこのことをしているのか疑問に思ってきました。
追加された 著者 Mark Adams,
私の頭の上から右に、これは2つの層を必要とするかもしれません。サイドレイヤーは90°の変換から始まり、レイヤー上のフェースが同じレートで正反対の動作をしている間に、0°または180°にアニメートされます。 x軸に沿って平行移動してその変換を行うことは納得できるかもしれません。
追加された 著者 Mark Adams,

1 答え

1つの側面に1つのレイヤーを3D空間に配置して、CAレイヤーに3Dレイヤーツリーを設定できます。したがって、3D回転キューブは6つのレイヤーを持ちます。各顔に1つ。

これらのレイヤーをすべてCATransformLayer(T)の子にする場合は、Tに1つの変換を適用して、たとえば3D空間内の構造全体を回転させることができます。

CALayerを「押し出す」方法はありません。

0
追加された