問題タブ [catransformlayer]

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 投票する
4 に答える
1231 参照

objective-c - CATransformLayer は暗黙的なアニメーションをサポートしていませんか?

ここに私のアニメーションコードがあります:

self.transformLayer1 つはCATransformLayer前面用、もう 1 つは背面用です (「フリップ」効果を作成しています)。ただし、このコードはアニメーションなしで位置と変換を設定するだけです。暗黙的なアニメーションをサポートしていないのではないかと思ったtransformので、それを取り出して位置を設定しようとしましたが、どちらもアニメーション化されませんでした (position暗黙的なアニメーションをサポートしていることは確かです)。

何か間違ったことをしているのですか、それともCATransformLayer暗黙のアニメーションをサポートしていないだけですか? ドキュメントには、サポートしていないことについては何も書かれていないので、サポートしていると思います。

編集:これはiOSではなくMac OS X用です

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

ios - CATransformLayer で動作するように OpenGL 変換マトリックスを変換する

プロジェクトで Stringの Augmented Reality SDK を使用しています。基本的に、この SDK は、認識した画像の一連のマーカーと、iPhone のカメラ ビュー内の 3D 空間でマーカー画像が配置されている場所を概説する関連する OpenGL マトリックス変換を返します。私がやろうとしているのはCATransformLayer、シーンに対してマップして、マーカー画像上で適切な向きに表示され、その場所でビデオを再生することです。マトリックス変換 ( に変換) が適用された a のAVPlayerLayer中に座って、これを行うことができると思いました。CATransformLayerCATransform3D

私が知る限り、これは特にうまく機能しません — 元の OpenGL マトリックスと の背後にあるマトリックスの間の論理マッピングを取得できないようですCATransform3D

マーカー変換とオブジェクトの間の直接変換を行うと、かなり混乱していることがわかりCATransform3Dます (青いビットは私のレイヤーです)。

この問題の現在の状態のスクリーンショット

CALayer私はそれらが同じであると仮定しました( GLのバッキングのためにそれらが同一であると何度か言われました)。これは本当ですか?何か不足していますか?

ビデオをテクスチャとしてシーンにレンダリングすることに戻ることもできますが、可能であれば、物事を高レベルに維持することをお勧めします — アイデア/コメント/考えはありますか?

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

iphone - Clear-appのようなUIView3DCube

googleとstackoverflowのすべての投稿を検索しましたが、このパズルを解くことができません。新しいタスクを追加するときに、今では有名なtodoアプリ「Clear」が行う効果を再現しようとしています。それらにはある種のアニメーションがあり、上から新しいタスクがある種の3Dキューブ効果で表示されます。彼らが持っている特別なことは、よく見ると、左下と右下の角が常に同じ場所にあるということです。

現在、私は次のものを持っています:ポイント0,0に設定された320x460の1つのUIViewとポイント(0、-460)に設定された320x460の1つのUIView。私が欲しいのは、一番上のUIViewが、一番上からクリアするのと同じ立方体効果で下に来ることです。これは私がこれまでに持っているものです:

}

どういうわけか動作しますが、正しくは機能しません。回転するとすぐにビューが大きくなり、左下と右下のコーナーがビューから外れます。ビューを小さくしてから3Dスケールを実行すると、それも台無しになります。レイヤーのzPositionを正しく設定することで、画像の半分が消えるという問題はすでに解決しましたが、これは私が知る限りです。他のプロジェクトのコードを使用しようとしましたが、それらの3Dキューブ効果はすべて「クリア」アプリと同じではありません。近づいているのはiCarouselプロジェクトだけですが、アプリから正しいコードを使用できず、動作させることができません。誰かが私を助けることができますか?

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

iphone - ビューを3Dで360度回転させる方法は?

ビューを360度回転させているアプリを開発していますが、360度回転させることができません。180度回転し、回転すると元の位置に戻ります。

つまり、前後に回転しているのです。それを継続的に回転させる方法....親切に助けてください...

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

ios - iOS で、レイヤの sublayerTransform を設定すると、CATranformLayer のように動作するようになるのはなぜですか?

zPositionレイヤーのは、どのレイヤーがどのレイヤーを覆うかを決定するだけであることが知られています。それがzPosition10 であろうと 1000 であろうと、その位置には影響しません。

つまり、これらのレイヤーを含めるために使用しない限り、これらレイヤーCATransformLayerzPositionの はレイヤーの位置に影響します。

ただし、iOS 5.1.1 で実行されている次のコードzPositionでは、レイヤーの位置が変更されます。新しいシングル ビュー アプリで試して、次のコードをViewController.m. のzPositionをからにlayer2変更すると、それに応じてレイヤーが移動することがわかります。したがって、コードにはありません。なぜそのように振る舞うのでしょうか?(Appleのドキュメントまたは参考文献を引用してください)。88188CATransformLayer

また、関連するのは、行self.view.layer.sublayerTransform = transform3D;が変更されたself.view.layer.transform = transform3D; 場合zPosition、位置に影響を与えないことです。しかし、Apple docs によると、transformselfsublayerTransformが変換されるかどうかだけが異なります:

transformおよび の 2 つのレイヤー プロパティが変換行列を指定しますsublayerTransform。で指定された行列transform propertyは、レイヤーの を基準にして、レイヤーとそのサブレイヤーに適用され anchorPointます。[...] sublayerTransformプロパティで指定されたマトリックスは、レイヤー自体ではなく、レイヤーのサブレイヤーにのみ適用されます。

したがって、なぜそれを変更するとself.view.layerのように振る舞うのか不思議ですCATransformLayer

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

animation - CATransformLayer アニメーションの回転中心を設定する方法

基礎となるlayerを持つビューがあり、 CATransformLayerをビューのレイヤーに追加します。

[view.layer addSublayer:transformLayer];

追加したレイヤーには、いくつかの 3 次元ブロックの個々の面を表すあらゆる種類のサブレイヤーが含まれています。レイヤーにアニメーションを適用してブロックを回転させたいと思います。

問題は、レイヤーが立方体の中心ではなく、前面の角を中心に大まかに回転していることです (以下の例を参照)。

回転方向に応じて、A/B ラベルが 1/2 の位置に移動するか、1/2 が A/B に移動する必要があります。代わりに、最初の図から変化し、手前の角を中心に大まかに回転し、他の図に近いものになります。上部のラベルのないブロックは別のビューにあり、静的であるため、回転の一部ではありません。下のラベルの付いたブロックは、アニメーション化しようとしているビュー/レイヤーにあります。

希望する結果を得るために回転の中心を変更するにはどうすればよいですか?

さまざまなレイヤーのanchorPointzPositionanchorPointZをいじりましたが、成功しませんでした。setSublayerTransformsetTransformも試しました。

私が求めているものを達成するために、ブロック側のサブレイヤー、変換レイヤー、ビューレイヤー、またはビュー自体の設定をいじる必要がありますか?

ガイダンスや指示をいただければ幸いです。

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

iphone - CATransform3DTranslate 後の CATransform3DRotate

私はあなたがここで見ることができるような折り畳み式の Facebook メニューを作ろうとしています: http://www.mobileinc.co.uk/2012/05/folding-iphone-sidebar-menu/

今のところ、「折り」の部分に取り組んでいます。2 つのレイヤーがあります: - 左のレイヤーには {1,.5} にアンカー ポイントがあります - 右のレイヤーには {0,.5} にアンカー ポイントがあります

メインビューの真ん中で問題なく折りたたむことができます: CGFloat width = self.view.frame.size.width; CGFloat destinationWidth = slider.value * width;

これは完全に機能します。次のように x 軸でレイヤーを変換しようとすると問題が発生します: CATransform3DTranslate(transform,-marginLeft,0,-opposite)

レイヤーは適切な z 移動で折り畳まれますが、ビュー全体が回転したかのようにぎこちない角度で終了します。

これは明らかにパースペクティブに関連しています(m34を設定しないと「機能します」)が、それを補正する方法がわかりません...

前もって感謝します!

乾杯、

TeuBeu2

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

iphone - 3D立方体の特定の側面のタッチを認識します

ここに画像の説明を入力してください

キューブは6つのCALayerで構成されており、これらが1つのCATransformLayerに追加されます。このtransformLayer(およびそれとともにキューブ)は、タッチ入力を使用して回転可能です。

問題:ユーザーが立方体のどちら側に触れているかを認識できるようにしたい。

私はこのコードを試しました:

しかし、立方体は2D空間にマッピングされているようです。サイド1に触れると、サイド1だけでなく、その後ろのサイド(たとえば、サイド4)も認識されます。

ユーザーに近い側(z座標が高い側)のみが選択されていることを確認するにはどうすればよいですか?

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

ios - CATransformLayer の使用に関する警告: 変換のみのレイヤーでプロパティ opaque を変更しても効果はありません

フリップ アニメーションで使用している両面ビューをサポートするために、" TransformView" サブクラスを作成しました。UIViewこれは、他の投稿で提案されています。

透視図で平らなオブジェクトをその中心を中心に回転させる方法は?

すべて正常に動作しますが、以下を使用して TransformView オブジェクトを作成するたびに警告が表示されます。

警告は次のように述べています。

- 変換のみのレイヤーでプロパティ opaque を変更しても効果はありません

UIViewクラスは不透明なプロパティを初期化していると思いますが、これは通常 aCALayerでは問題ありませんが、 ではありませんCATransformLayer

サブクラス化コードは非常に危険ですか? もしそうなら、フリップ アニメーション用の両面ビューを作成するには、他にどのような方法がありますか?

警告を停止する方法についてのアイデアはありますか?

TransformView警告を回避するのではなく、nib ファイルからを作成するのではなくinitWithFrame、警告を回避するためだけにこれを行う必要があるのではないかと疑っています。

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

core-graphics - CATransformLayerの例とドキュメントの場所

CATransformLayerの優れたチュートリアルを読むことができる場所はありますか?
Appleのドキュメントはこれについて非常に簡潔なようです。