問題タブ [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 投票する
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

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

iphone - CALayerでアニメーション化されたプロパティの変更を監視する

たとえばCABasicAnimation、のプロパティをアニメーション化するものがあります。時間の経過とともに変化するプロパティを観察できるようにしたいのですが、100%機能する方法は実際には見つかりませんでした。CALayerbounds.origin

  1. presentationLayerbounds.originキーパスでKVO(キー値観測)を使用してみました。システムは、オブザーバーが解放される前にオブジェクトが解放されると文句を言い、プレゼンテーション層は一時的なものにすぎないと私に思わせます。キーパスpresentationLayer.bounds.originとしての監視は機能しません。

  2. 別のレイヤーにプロパティを作成し、それをアニメーション化してみました。たとえば、を宣言してそのレイヤー@propertyに作成し@dynamicました。ただし、この新しいプロパティは、プレゼンテーション層にアクセスしたとき(アニメーションの最後など)にのみ変更され、アニメーションの実行中は更新されないようです。

  3. needsDisplayForKeyアニメーション中に更新をトリガーする#2のプロパティで使用しましたが、これらの問題については次のようになります。

    • CALayerがゼロ以外のフレームを持っている場合にのみ機能します。このレイヤーはCAShapeLayerまたはサブクラスである可能性があるため、フレームがゼロである可能性があります。
    • そのレイヤーに対してトリガーされているように見えますsetNeedsDisplayが、実際にはプロパティの変更を監視するだけでそのレイヤーを描画していないため、再描画させたくありません。
  4. をスケジュールしてみましたNSTimerが、タイマーコールバックのサンプル内でpresentationLayer。これも機能しますが、これらの問題に対して:

    • タイマーは、アニメーションの更新とわずかに同期していない可能性があります。
    • 元のアニメーションが別のアニメーションに取って代わられることがあるため、アニメーションの実行中およびアニメーションの実行中にのみタイマーを実際に起動することは困難です。

助言がありますか?これはすべてiPhoneOS3.0/3.1にあります。

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

objective-c - コア アニメーション レイヤーの webview

CALayer 内に webView を作成したかったのです。些細なことかもしれませんが、私は CA に頭を悩ませているところです。誰でも助けていただけませんか?

乾杯ロン

0 投票する
4 に答える
5531 参照

iphone - CALayerのbringSubviewToFront

レイヤーを他のレイヤーの上に表示する方法があるかどうか疑問に思っています。クラスのようなものbringSubviewToFront。のプロパティでUIView実行できると思いますが、これは、すべてのレイヤーを確認してから適切な値を設定する必要があることを意味します。zPositionCALayerzPosition

前もって感謝します。