問題タブ [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 投票する
1 に答える
94 参照

ios - CaAnimations が正しく動作しない

Mac用のアプリを作っています。5 枚のカードが連続しており、ボタンをクリックすると、すべてのカードが順番に裏返されます (最初のカードが裏返された後、2 番目のカードが裏返されます)。私が抱えている問題は次のとおりです

アニメーション ボタンをクリックすると、カードが裏から表 (色から番号) に反転するはずで、すべてがうまく機能します。それらは、Y 軸を中心としたフリップ回転で次々と完全にアニメーション化されます。

しかし、アニメーション ボタンをクリックすると、カードが反対方向 (番号から色へ) に移動する必要があります。ここで何が起こるかを示します。

その後、すべてのカードが 1 つずつ (順番に) 正しいフロント レイヤーに変更され、バック レイヤーにアニメーション化されます。

アニメーションの動画はこちら

https://www.youtube.com/watch?v=fznUFR6pHCQ&feature=youtu.be

アニメーションを正常に表示できるようにするには、何を変更すればよいですか。

このようにカードを初期化しました

ボタンをクリックすると、この関数が呼び出されます

フリップ (flip1-5) のクラスは次のとおりです。 .m ファイル

.h ファイル

0 投票する
0 に答える
41 参照

ios - CATransformLayer の不透明度は、その子に渡されるはずですか?

表と裏のカードビューがあります。表と裏はCALayerで構成されていCATranformLayerます。後ろのレイヤーを変形して右方向を向くように反転させた後、z 方向に移動させて正面より少し後ろに置きます。

CATransformLayer に含まれる、互いに重ねられた 2 つの CALayer (最下層が水平方向に反転)

親の不透明度をCATransformLayer1.0 から 0.0 に調整すると、前面がフェードアウトすると予想されますが、代わりに両方の面がブレンドされてフェードアウトします。

以前に両側のdoublesidedプロパティを に設定してこれを修正しましたNOが、これにより警告が発生しました。

……というか、効果はあります。no に設定doublesidedすると、フェードアウト時にレイヤーがブレンドされなくなります。doublesidedが設定されていない場合 (デフォルトはYES)の場合は次のようになります。

ここに画像の説明を入力

これはバグCATransformLayerですか、それとも私の理解が間違っていますか?

ここにも問題の要点があります。

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

ios - UIView を中央からではなく、CATransform3DScale を使用して右下隅からスケーリングします。

スクロールに基づいてプロフィール画像を拡大縮小 (縮小) したい。しかし、重要なことは、中心点からではなく、右下の角度からスケーリングしたいということです。つまり、画像に示すように、右下の角度を固定し、画像を左端と上端から縮小する必要があります。

これが私がしていることです。プロフィール写真の名前はimgVwProfilePic:

今、その画像ビューにアンカーポイントを設定する必要があることを知りました。しかし、どこに設置するかわかりません。に設定しましたviewDidLoadが、その画像ビューの元のフレームが変更されます。

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

ios - Autolayout と CGAffineTransform

ユーザーの操作中に UIView をスケーリングしようとしていますが、次のようにビューに CGAffineTransform を実装しました。

これはビューを適切にスケーリングするように見えましたが、画面上でビューを移動すると予測できない結果が生じ始めたことに後で気付きました。ビュー オブジェクトではなくレイヤーをアニメーション化することをお勧めします。

レイヤーに適用できないCATranform3Dようだったので、上記のコードを使用するようにリファクタリングしようとしました。CAAffineTransformしかし、CATransform3D可能性があります。しかし、その Transform オブジェクトを使用してレイヤーをスケールする方法を理解できませんでした。

次のように、ビューのレイヤーに変換を適用しようとしました。

そして、それは私のビューのすべてのサブレイヤーをスケーリングします

しかし、私はそれを適用しようとします

というエラーが表示されます

readonly プロパティへの代入

クラスも調べましたCATransformLayerが、それを self.layer に割り当てようとすると、次のエラーが表示されます。

互換性のない型 CATransform3D から CATransformLayer への割り当て

私の質問は、Autolayout コーディナントに干渉せずに UIView のレイヤーをスケーリングする方法があるかということです。

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

ios - 両面UIViewが機能しない

私はUIViewcalledのサブクラスを持っています。このサブクラスが行うことはすべてreturn へTitleViewのオーバーライドです。layerClassCATransformLayer

私のtitleViewプロパティにはいくつかのサブビューがあります。titleBackgroundViewと_ titleLabel_

コードを実行するとtitleViewの最上層が表示されますが (緑色の背景)、フリップ アニメーションを実行するとアニメーションが表示されません。コードは終了状態にジャンプするだけです。さらに、最下層 (赤い背景) は表示されず、titleView(変換されたtitleLabel) の反転バージョンだけが表示されます。

IBOutlet セッターには、次のコードがあります。

titleViewアニメーション コード:

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

ios - CATransform3D を使用する CATransformLayer iOS で、遠近角度を右から左に変更します。

1 つの 3D ブロックを描画しようとしています!

2 つのレイヤーを使用すると、右側の3D で見栄えがします。添付の画像を参照してください。

ここに画像の説明を入力

左側のマイナーな変更のために同じコードを再利用しようとしているとき! 奇妙に見えます。以下の添付画像を参照してください。

ここに画像の説明を入力

視点の角度を変えることができれば改善できると思いますが、それを達成する方法がわかりません。

transform.m34パースペクティブに使用します。どんな助けでも大歓迎です。

これが私が使用しているソースコードです。