問題タブ [calayer]

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

iphone - CALayer で問題を描く

まず第一に、レイヤーをレンダリングするさまざまな方法に関しては、iPhone のオンライン ドキュメントがあまり明確ではないことがわかりました。私はそれの要点を理解していますが、いつどのメソッドを使用し、どのレイヤーをサブレイヤーとして追加する必要があるかは明確ではありません。

私のプロジェクトは、画像をロードし、[image drawAtPoint:] と [image drawInRect:] を介して単純に UIView に描画することから始まりました。これらは、現在のグラフィックス コンテキストを使用して正常に動作します。

それから今日、レイヤーを使用するというこの概念をたまたま読んだので、さまざまな画像を(暗黙的に)アニメーション化することは理論的には簡単です!

記録のために、私はドキュメントがCALayerのサブクラス化が不必要であると言っていることを知っていますが、私はそれをしました。今、レイヤーをレンダリングすると思われるさまざまな方法について、私は信じられないほど混乱しています。

  • drawLayer
  • 表示レイヤー
  • 画面
  • drawInContext

これらすべての方法で、レイヤーのフレーム サイズを設定する必要がありますか? ビューのレイヤーにレイヤーを追加する必要はありますか?

目に見える結果が得られる唯一のメソッドは drawinContext メソッドです。しかし、暗黙的なアニメーション (image.opacity = 0 など) を適用すると何も起こらず、レイヤーが適切に設定されていないと思われます。

誰かこの混沌に秩序を取り戻してください。

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

cocoa - CALayer でサポートされている NSView サブクラスをローテーションする方法

Core Animation でアニメーション化したいカスタム NSView サブクラスがあります。私はすでに (CA なしで) NSView の setFrameOrigin および setFrameRotation メソッドを使用して、これらのビューの位置と回転を設定しています。ただし、何をしても、ビューにレイヤーバッキングを追加すると、ビューを回転させることができません。

NSView の setFrameRotation および setFrameCenterRotation メソッドを使用してみました。後者はビューを少し移動しますが、コンテンツは回転しません。前者は効果がありません。CATransform3DRotate によって作成された CATransform3D をビューのレイヤーに適用しても効果はありません。

簡単なことのように思えるので、この質問をするのは少しばかげていますが、私の人生では、それを機能させる方法がわかりません。だれか、こんなに簡単だったなんて、額を叩かせてください。:)

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

core-animation - CALayer の明示的なアニメーションが正しく動作しない

暗黙のうちに物事は正常に動作します。しかし、明示的なアニメーションを使用して 1 つのレイヤーで複数のアニメーション (不透明度と移動など) を実行しようとすると、奇妙な結果が得られます。

まずはCATransactionを使ってみました。その後、CAAnimationGroup に切り替えました。どちらも私が欲しいものを手に入れていないようです。

私が欲しいものは?私が望むのは、レイヤーが最初の不透明度とターゲットの不透明度であるポイントから別のポイントに移動することだけです。それでおしまい!

私は何を見ていますか?ここに一例があります...

トランザクションの開始/コミットを実行すると、変換は正しいように見えますが、不透明度は正しくありません。私の開始不透明度は 0 で、目標不透明度は 0.5 です。ただし、アニメーションを実行すると、0.5 にブレンドされますが、1.0 (完全に不透明) に「スナップ」されます。

removedOnCompletion を NO に設定してみました。しかし、それも役に立ちませんでした。肝心なのは、AnimationGroup と Transaction の違いを知る必要があるということです。

誰かがこれを説明できますか、そしておそらく私のアニメーションの奇妙さに関して私が見ていることはありますか?

ありがとう!

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

iphone - サイズが 16 バイトのリークされた UIImage は何を示しているのでしょうか?

16バイトはかなり小さいですよね?アプリで作成した UIImage はどれもそれほど小さいものではありませんが、Leaks Instrument は 16 バイトのサイズのリークされた UIimage を報告しています...これが何であるかの手がかりはありますか? ちなみに、リークされた48バイトのCALayerオブジェクトもありました...

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

iphone - 移動時の CALayer コンテンツの再描画を無効にする (iphone)

私は多数の CALayers (~1000) を持つ UIView を持っています。それぞれのコンテンツには小さな画像があります。この UIView はスクロールビューのサブビューです (実際には、スクロールビューのサブビューである別のビューのサブビューです)。これは、最初は比較的速く描画されます (数秒)。ただし、スクロールビューでスクロールすると、フレームレートが非常に低くなります。

スクロールするたびに各 CALayer の内容を再描画しようとしていますか? これを無効にする方法はありますか?何か他のことが起こっていますか?

注: UIView で clearsContextBeforeDrawing を NOo に設定しました。

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

iphone - CABasicAnimation を使用して CALayer を回転させた後、レイヤーは回転していない位置に戻ります。

落ちるコインを作ろうとしています。コインの画像は、落下と回転の 2 つの CABasicAnimation を持つ CALayer です。落下アニメーションが終了すると、そこにとどまります。ただし、ランダムで毎回異なる角度になるはずの回転アニメーションは、元の CALAyer 画像に戻ってしまいます。

アニメーションが終わった角度のままにしておきたいです。出来ますか?どうすればいいのですか?

コード:

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

cocoa - CALayer の制約を更新するにはどうすればよいですか?

ビュー内で垂直方向に整列できるようにしたい CATextLayer があります。ビューの上部、中央、または下部に配置するように制約を設定できます。しかし、ユーザーがその場でこれを変更できるようにしたいと考えています。CATextLayer を設定するときは、この制約を使用して中央に配置します。

これはうまくいきますが、レイヤーを更新してビューの上部に揃えたい場合は、次のようにします。

新しい制約を追加すると、上部に配置されず、ビューの上部を超えて、その一部しか表示されなくなります。両方の制約を適用しようとしているようです。クラスでCAConstraint変数を定義し、CATextLayerに追加した後にその変数を更新すると、removeConstraintはなく、同じことが起こるようです。毎回 CATextLayer を再作成する必要がありますか?

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

iphone - サブレイヤーを並べ替えても効果なし

レイヤーの 3 つの兄弟サブレイヤーをインスタンス化する UIView サブクラスがあります。サブレイヤーのうち 2 つは、コンテンツが画像ファイルに設定されています。3つ目はグラフィックが描かれています

方法。問題は、描画レイヤーが常に画像レイヤーの背後に表示されることです。サブレイヤー配列の順序を変更し、サブレイヤーの zPosition プロパティを変更しようとしましたが、役に立ちませんでした。私は何が欠けていますか?

そして drawLayerInContext メソッド:

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

iphone - CALayer で非表示を使いすぎると関連するコストはありますか?

誰かがこの質問に対する答えを知っているかどうか疑問に思っていました-レイヤーを隠しすぎることに関連するコストはありますか.

たとえば、レイヤーが既に非表示になっている場合、layer.hidden = YES を何度も呼び出すと、単に呼び出しスタックをステップスルーするよりもオーバーヘッドが増えるでしょうか? Cocoa は、レイヤーが既に非表示になっていることを認識できるほどスマートですか?

または、レイヤーの可視性が変更されたかどうかを常に確認してから、hidden を呼び出す必要がありますか?

最初のパターンでは、条件ステートメントのクロージャーが許可されます。これにより、コーディングの実践が向上しますが、余分なスタック呼び出しが発生します。2 番目のパターンは、より明示的ですが、条件ステートメントが失敗します。

ありがとう、ブライアン

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

iphone - より多くのUIViewまたはより多くのCALayerを使用して複雑なUIViewを作成する必要がありますか?

ベース画像に他の画像と2Dパスを重ね合わせた複雑なビューがあります。

要素ごとに異なるUIViewを作成してコンプレックスビューの子として追加することでコンプレックスビューをアセンブルする場合、または代わりに要素ごとに異なるCALayerを作成してコンプレックスの子として追加する必要がある場合、どのような違いが生じるのでしょうか。ビューのレイヤープロパティ。

ありがとう

tat0