問題タブ [careplicatorlayer]

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 に答える
1219 参照

ios - CAReplicatorLayer による降雪効果

複製して画面に降雪を作成したい単一の雪片の画像があります。instanceCount を X に設定して多数の雪片を作成し、instanceTransform を設定して各インスタンスを次のインスタンスからある程度離すことができます。

しかし、それらを落下させる方法は明確ではありません。このクラスがこのような目的で使用されることを意図しているかどうかを理解している人はいますか?

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

iphone - CAReplicatorLayerのランダムな位置

CAReplicatorLayerレイヤー内にランダム性をどのように導入しますか?たとえば、各パーティクルの位置をランダム化します。

ベスト、ヴァンス

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

iphone - CAReplicatorLayer をランダムに使用して火花効果を作成する方法は?

CAReplicatorLayer パーティクル システムをランダムに使用して、説得力のある火花効果を作成することは可能ですか?

もしそうなら、どのように?

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

iphone - CAReplicatorLayerの操作

私は、CAReplicatorlayer、CATextLayer、および非常に基本的なアニメーションを使用して、クールなテキスト効果を作成しようとしています。画面の上部から文字がドロップされているように見せようとしています。その後、クールなレプリケーターが表示されなくなります。私はなんとかこの効果を行うことができましたが、完全ではありません。

これまでのところ、これは私が持っているものです:

私には2つの問題があります:

  1. 複製されたレイヤーはエンドポイントから始まります。
  2. メインレイヤーが最後のアニメーションポイントに到達すると、アニメーションが停止し、複製されたレイヤーはアニメーションを終了できません。
0 投票する
1 に答える
493 参照

cocoa-touch - 「拡大鏡」タイプのUIコントロールの実装

他のUIViewの一部を拡大して見ることができる眼鏡/ズームタイプのコントロールを実装しています。

メインのUIViewのスクリーンショットを撮り、そのスクリーンショットの一部のみを拡大鏡に表示することでこれを行うソリューションを実装しました。

ただし、この実装は非常に非効率的です。タッチを動かすと、この変更の前後で顕著な速度低下が発生します。

これを行うための他の方法を検討しています。誰か提案がありますか?

私が今見ているものは2つあり
ます。1。CAReplicatorLayer:レプリケーターレイヤーでこれを行うことは可能ですか?
2.部分的なスクリーンショット:別のUIView /レイヤーの部分的なスクリーンショットをどのように撮りますか?

これをどのように実装できるかについて、他に何か提案はありますか?

よろしく!

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

ios - CAReplicatorLayer の背後にある魔法とは?

CAReplicatorLayer の興味深い点:

  • 非常に効率的に異なる変換を使用して CALayer を複数回表示できます (どのように?)
  • どういうわけか、複製されたレイヤーの「バッキング ストア」を再利用し、それにいくつかの色合いを適用しているようです (どのように?)

ソースコードを手に入れるか、CAReplicatorLayer の背後にある魔法についての知識を得たいと思います。CAReplicatorLayer に似た CALayer クラスが必要ですが、より詳細に制御できます。レプリケートされたインスタンスごとに個別に変換を制御したいと考えています。

したがって、まったく別の方法で質問されました。CALayer の「バッキング ストア」を取得して、それを何度でも表示することは可能ですか?

(「バッキング ストア」とは、CALayer/UIView のレンダリングされたテクスチャを意味します。CoreAnimation/QuartzCore のフードの下で何が起こっているかについてはあまり知りません)。


CALayer を UIImage にレンダリングするなどの代替手段を検討していない理由:

  • パフォーマンス
  • コンテンツはトランジションの下で動的/かなり頻繁に変更されます
  • 他の方法でそれを行うのは本当に素晴らしいことです!
0 投票する
1 に答える
397 参照

ios - この kCAMediaTimingFunctionEaseIn の使用に問題はありますか?

とを使用してCALayer、棒グラフを所定の位置にアニメーション化します。棒グラフは「セグメント」で構成されており、. 次に、それらをサブレイヤーとしてループに追加します。最後に、小さな四角形ごとにアニメーションを追加して、四角形をチャート内の所定の位置にドロップします。CAReplicatorLayerCABasicAnimationCALayerCAReplicatorLayer

アニメーションの最終状態は次のとおりです。

アニメーションの正しい最終状態

そして、アニメーションの途中で次のようになります。

アニメーション状態

これを実現するコードは次のとおりです。

最後に、これがキャッチです。no timingFunctionLinear関数または関数を指定するとEaseIn、アニメーションは完全には完了しません。ブロックが完全にはまらないように。完成に近づいているように見えますが、完全ではありません。ちょうど 1 つまたは 2 つのフレームをオフにします。タイミング関数の割り当てを交換する-viewDidAppear:と、次のような奇妙な結果が得られます。

ここに画像の説明を入力

さあ、試してみてください。関数とまったく同じコントロールポイント(linkEaseIn )で関数を指定してみました:

何らかの理由EaseOutで、Defaultタイミング関数は正常に機能しますが、補間の曲線の長さのために、スタイル関数の使いやすさが視覚的に完了するのに時間がかかるように見えますか?

問題を絞り込むために多くのことを試しました:

  1. これらの構造をループせず、同じアニメーションで 1 つのレイヤーと 1 つのレプリケーター レイヤーのみを使用します。つまり、1 つの列だけをアニメーション化します。運がない。ループは問題ではありません。
  2. 作成、サブレイヤーの追加、アニメーションの追加のコードをすべて に入れ-viewDidAppearます。アニメーションがビューのライフサイクルの早い段階で追加された場合でも後で追加された場合でも、違いはないようです。
  3. 構造にプロパティを使用する。変わりはない。
  4. 私の構造にプロパティを使用していません。繰り返しますが、違いはありません。
  5. 列を正しい「最終」状態のままにするために、アニメーションを削除するアニメーション完了のコールバックを追加しました。これは良くありませんでしたが、試してみる価値があります。
  6. この問題は、iOS 6 と 7 の両方に存在します。

タイミング関数を使用したいEaseInのは、何かが所定の位置に収まるのに最も見栄えの良いアニメーションだからです。CAReplicatorLayerまた、私がやりたいことを正確に実行するので、 も使用したいと思います。

EaseInでは、私が使用しているタイミング関数の何が問題なのですか? これはバグですか?

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

ios - CAReplicatorLayer で使用して万華鏡効果を作成するためのアニメーション CALayer のマスキング

iOSで万華鏡を作成しようとしています(CIKaleidoscopeフィルターがあることは知っていますが、探しているような効果が得られないので、自分で作成したいと思っていました)。を使用して静止画像で効果を得ることができCALayer、三角形でマスクしてから でCAShapeLayer複製しましたCAReplicatorLayer。元の画像をアニメーション化してCALayer、動きをつけようとしています。私はを作成してCALayerおり、アニメーション化は次のコードを使用しています:

次に、マスクに使用する三角形を作成します。

マスクがアニメーションとともに移動するため、アニメーションをマスクできずCALayer、パターンが三角形を移動する効果が得られません。

ビューのレイヤーにマスクを追加すると、パターンがマスク内を三角形に移動するという効果があります。

を使用してこれを簡単に複製することはできませんCAReplicatorLayerCALayerアニメーションレイヤーのフレームではなく、ビューのフレームに対してマスクを固定する方法はありますか? または、ビューのアニメーション画像をキャプチャして、ビューで使用できる方法はありCAReplicatorLayerますか?

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

objective-c - CAReplicatorLayer の instanceDelay は無視されました

このコードを使用して、後でそれらをアニメーション化するために複数の「カード」を作成しようとしています:

instanceDelayが に設定されていても、それらはすべて同時に表示され10ます。メソッドにこのコードがありますviewDidAppear