問題タブ [catransform3d]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
646 参照

cocoa - CATransformLayer:サブレイヤーを自動サイズ変更して境界を埋めますか?

アニメーションCATransformLayerの境界を埋めるためにサブレイヤーを自動的にスケーリングする方法はありますか? CATransformLayer私はすでにautoresizingMaskプロパティを設定して使用しようとしましCAConstraintLayoutManagerたが、どちらも効果がないようです。

私がこれをしたい理由は、CATransformLayer で 3D 回転 + 拡大アニメーションを実行していて、サブレイヤーがアニメーションの境界を埋めるようにスケーリングされていないため、拡大が機能しないためです。

0 投票する
2 に答える
1438 参照

core-animation - CATransform3D の行/列の順序

CATransform3D 構造体の行列の行/列の順序に関して少し混乱しています。構造体は、次のような行列を定義します。

最初は、値が行を定義しているように見えますが ([m11 m12 m13 m14] が最初の行を形成するように)、(tx, ty, tz) によって変換行列を作成すると、行列は次のようになります。

私の混乱は、これが有効な翻訳マトリックスではないという事実から来ています。これに 4 要素の列ベクトルを掛けても、点は移動しません。

私の推測では、CATransform3D 構造体は値を列順に格納するため、値 [m11 m12 m13 m14] が最初の列 (最初の行ではなく) を形成します。

誰でも確認できますか?

0 投票する
1 に答える
756 参照

cocoa - すべての CALayer 要素に同じ遠近法と回転を適用する (Coverflow とは異なります)

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

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

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

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

1) 回転するには:

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

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

ありがとう、マーク。

0 投票する
3 に答える
7835 参照

iphone - CATransform3D 回転により画像の半分が消える

次のコードを使用して画像を回転させていますが、ページの「外側」に回転した画像の半分 (y 軸の下) が消えます。直し方?headingはラジアンです。

0 投票する
1 に答える
435 参照

objective-c - スケール変換が行われると、サブビューが親ビューによってクリップされる-Objective C

私のプロジェクトには、画面内の4つの独立したビューが含まれます。この場合、アップルのドキュメントには、ビューコントローラーが1つだけで、さまざまなビューを制御するために4つのNSObjectがあると記載されています。ビューとNSObjectを作成するためにInterface Builderを使用しなかったので、プログラムで宣言しました。ビューの1つでは、サブビューとしてimageviewを使用してすべての画像をロードしています。

私がやろうとしているのは、アニメーションのようなmacosdockに似たアニメーションを試すことです。タッチするとズームインします。

問題は、ビューがタッチされているときに画像をズームしているときです。CATransform3dMakeScaleを使用しました。私のimageviewは親ビューによってクリップされています。これで私を助けてくれませんか。私はいくつかの旗を逃したに違いないと思います。

私はclipstoboundsを試し、フラグのサイズを変更しました。何も機能しません。

問題が次の理由によるものかどうかの疑いがありますが、デバッグ方法がわかりません

1)viewcontrollerを使用せずにNSObjectを作成したので。loadViewまたはinitメソッドの間に自動的に設定されるフラグのいずれかを見逃しましたか?2)NSObjectの使い方が正しいかどうかも疑問です。

ありがとう

0 投票する
2 に答える
2974 参照

iphone - CATransform3d UIButton

単純な3D変換をボタンで機能させることができないようで、ドキュメントが役に立たないようです。ビューベースのアプリケーションテンプレートから始めました。QuartzCoreフレームワークを追加し、ViewControllerヘッダーにインポートします。Interface Builderで、2つのRound Rectボタンをドラッグして、それぞれbutton1とbutton2にワイヤリングし、両方をbuttonPressed:メソッドにワイヤリングします。

コメントアウトされたアニメーションを使用してクイック実行すると、クリックされたボタンのみがラベルを変更することが確認されます。

アニメーションを元に戻すと、「sender.transform = t;」の「setTransform:」の引数1に互換性のないタイプのエラーが表示されます。line(これは固定された行で[sender.layer setTransform:t];に変更されました)

360度回転させるにはどうすればよいですか。問題は、開始状態と終了状態が同じであるため、どこを回転してもわからないことだと思います。

これが.hです(この投稿ではフォーマット上の理由でインポートを省略しました)

そして.mファイル

0 投票する
5 に答える
7130 参照

iphone - CATransform3Dパースペクティブを使用した折り紙トランジション

レイヤー機能のみを使用して、2つのUIViewで一種の折り紙トランジションを実現しようとしています。アイデアは、遠近効果で2つのビューを折りたたむことです。両方のビューにはパースペクティブがあり、遷移は各ビューの回転と、このビューがもう一方のビューにアタッチされているように見えるように一方のビューの平行移動によって定義されます。

問題は、トランジションの途中でビューが互いにオーバーラップすることです。この重複を視覚的に回避するためにzPositionを使用したくありません。これらの2つのビューが、共有側によって結合されているかのように機能するようにしたいのです。トランジションのコードは次のとおりです。

何かアイデア、または他の解決策はありますか?

移行中の重複するビュー

問題を単純化するために、遠近法の変換を取り除きましょう。同じ種類の問題があるより単純なコードを次に示します。

0 投票する
1 に答える
3460 参照

core-animation - 変換されたCALayerの実際のサイズを取得するには?

2 つの変換を適用した200x200 pixel CALayerインスタンスがあります。

  • 50%に縮小
  • 3D パースペクティブを適用

次に、変換されたレイヤーを別のレイヤーに揃えたいと思います。そのためには、変換されたレイヤーのサイズ (幅と高さ) が必要です。

問題は、レイヤーに対してlayer.boundsまだ返さ200x200れることですが、透視変換のため、実際に表示される幅は よりも小さく、高さは よりも大きくなり200ます。ちなみに、プレゼンテーション層の境界は を返し0ます。

CALayer変換されたものの正確なサイズを、画面上に描画されているとおりに正確に判断する方法はありますか?

0 投票する
2 に答える
4015 参照

iphone - CATransform3D を使用してフリップ アニメーションを作成する

UIViewAnimationTransitionFlipFromRight (および左) を再作成しようとしています。以下に示すように、そうする理由は、レイヤーが遮られているときに、アニメーションの途中で AVCaptureVideoPreviewLayer に変更を加えることです。UIViewAnimationTransitionFlipFromRight では、アニメーションを途中で停止したり、セッションを変更したり、続行したりすることはできません。

これは機能しますが、UIViewAnimationTransitionFlipFromRight と同じではありません。レイヤーが回転し始めますが、スライドのように後方および斜めに (説明するのは非常に困難です)、アニメーションの 2 番目の部分で反転します。レイヤーの右側を探して背面に反転し、次に左側に進みます。代わりに、右側は右側から始まり、後ろに回転してから、再び右に回転します。

私は何を間違っていますか?

更新: 最初は正しく回転します。その後、上記の問題は解決しません。リセットする必要がある AVCaptureVideoPreviewLayer と関係がありますか? わかりません、ただの推測です。

0 投票する
1 に答える
8827 参照

objective-c - Core Animation - ページめくり

Flipboard アプリとまったく同じようにビューを「曲げ」たいと思います。ビュー全体を反転することに成功しましたが、曲げることはできませんでした。私の戦略は次のとおりです。曲げたいビューの半分からビュー/レイヤーを作成し、これをビューに追加して、この新しいビューを反転します。では、ビュー/レイヤーを別のビューの半分だけに描画するにはどうすればよいですか?