問題タブ [cashapelayer]

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

iphone - CAShaperLayer -renderInContextが機能しませんか?

次のコードを使用して、CoreAnimationレイヤーからUIImageを作成できます。

このコードは私のCALayer派生クラスにあります。私が遭遇している問題は、結果の画像にレンダリングされない私のレイヤーの子レイヤーである2つのCAShapeLayersがあることです。標準のCALayerを子として追加すると、正常にレンダリングされます。Appleのドキュメントによると:

レシーバーとそのサブレイヤーを指定されたコンテキストにレンダリングします。

また、iPhoneOS2.0以降で利用可能になっているとも書かれています。足りないものがあるのか​​、レーダーを提出する必要があるのか​​疑問に思います。

子CAShapeLayersが画像に引き付けられないようにするためのアイデアはありますか?

ありがとう。

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

iphone - CAShapeLayer がインターフェイスの回転を遅くする

カスタム描画コードをビューから に移動しようとしていますCAShapeLayer。これは、サブレイヤーとして元のビューの に追加されますCALayer。これもうまく機能しますが、デバイスを回転させると、アニメーションが途切れ始めます。たとえば、フレームが元の向きで表示され、最終的な向きで表示され、その間に最大で 1 つのフレームが表示されます。まったく滑らかではありません。対応するスライドインとスライドアウトのアニメーションUIViewControllerも少しぎくしゃくしています (ただし、それほどではありません)。

CAShapeLayerその中のすべてpathは 1CGPathAddRectで、 に設定されopaqueopacityは で1.0fあり、fillColorは不透明な青に設定されています。

ただし、ビュー メソッドでパスを直接描画するdrawRectと、アニメーションスムーズになります。CAShapeLayerだから、ローテーション中にアニメーション化されることと関係があると思います。

これらのぎこちなさを取り除く方法、またはCAShapeLayerアニメーション時に単に非表示にする方法を教えていただけますか? s を直接描画するだけに戻ることは、私にはオプションではありません。これは、そのパスをアニメーション化CGPathする機能に依存しているためです(ビューを回転させようとしてもアニメーション化されません)。CAShapeLayer

/update: これは、回転するUIViewControllers ビューに のサブクラスを持つCAGradientLayerビューlayerClass(背景としてグラデーション レイヤーを持つビューなど) が含まれている場合にも発生します。

乾杯

ミスターメイジ

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

iphone - CAShapeLayerパスはアニメーション後に消えます-同じ場所にとどまる必要があります

StackOverflowのヘルプのおかげで、現在CAShapeLayerでパスをアニメーション化して、移動するスプライトから画面上の別の移動するポイントを指す三角形を作成しています。

アニメーションが完了すると、三角形が画面から消えます。このコードは各スプライトに対して0.1秒ごとに実行されるため、非常に短い期間を使用しています。その結果、赤い三角形は正しく追跡されますが、すばやく点滅するか、完全には表示されません。期間を長くすると、三角形が長く留まることがわかります。

tovalueある場所から次の場所にアニメーション化するためにメソッドが再度呼び出されるまで、三角形を現在のパス()で画面に表示したままにするにはどうすればよいですか?removeOnCompletionとremoveAllAnimationsを設定しようとしましたが、役に立ちませんでした。

以下のコード:

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

iphone - iPhone OS 3.0でCAShapeLayerに影を落とすにはどうすればよいですか?

パス付きのCAShapeLayerを使用しています。今度は、厚さ約10単位の滑らかな影を投げたいと思います。

最初に:ええ、私は11個のCAShapeLayerオブジェクトを作成することができ、毎回、パスのアウトラインを1単位ずつ増やし、反復ごとに異なる色とアルファを追加します。しかし、この方法では、メモリフットプリントが大きくなります。これは、画面サイズが半分であり、これは、メモリに画面サイズが半分のビットマップの11倍になることを意味します。

したがって、iPhone OS 3.2以降、CALayerでこれらの気の利いたシャドウプロパティを使用できるようになりました。しかし、私はOS3.0に固執したいと思います。それで、上記の厄介なもの以外に、どのようなオプションがありますか?

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

iphone - CAShapeLayer の content プロパティに CGImage を追加できますか?

次のようなlayerClassオーバーライドを持つカスタムビューがあります。

次のように、contents プロパティに CGImage を追加できるようにしたいと考えています。

設定する必要がある他のプロパティ、またはアニメーション用の画像のコンテンツをレンダリングするためにシェイプ レイヤーを取得する他の方法はありますか?

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

iphone - CAShapeLayerの最大サイズ?

画像の上に半透明の形を描画しようとしています。

UIViewレイヤーのコンテンツが画像に設定され、CAShapeLayerサブレイヤーのパスがシェイプに設定されているがあります。のズームの子であるUIViews親の中にこれらのいくつかがあります。UIViewUIScrollView

iPhoneではすべて問題ありませんが、iPadでズームインすると、UIViewsかなり大きくなり、CAShapeLayers消えます。ただし、画像は正常に表示されます。サイズの問題だと思ったCAShapeLayersので、2つに分けて左右に分けました。これで、ユーザーが実際にズームインしない限り、両方が表示されます。たとえば、最大ズームを超えて「ピンチを解除」している間は、跳ね返る直前です。

私をさらに分割するCAShapeLayersことは実行可能ですが、少し面倒です。だから、私はいくつかの質問があります:

  1. の最大サイズの制約はありCAShapeLayersますか?レイヤーの画像コンテンツに適用されないのはなぜですか?
  2. CAShapeLayersズームピンチ中に再描画するのはなぜUIScrollViewですか?ズームビュー全体(UIScrollView's直接の子)をインチの間にラスタライズするべきではありませんか?どうすればそうできますか?
0 投票する
2 に答える
1988 参照

path - Photoshop/Illustrator でパスを描画し、iOS で使用する

プログラムでパスを描画するよりも便利なパスの描画方法を探しています。Photoshop (または Illustrator) でパスを描画し、そのパスを iPhone に取得して CAKeyframeAnimation で使用する方法はありますか? たとえば、ポイント データをエクスポートするか、.ai ファイルをインポートしますか?

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

iphone - CAShapeLayerにグラデーションを適用する

CAShapeLayerにグラデーションを適用した経験はありますか?CAShapeLayerは素晴らしいレイヤークラスですが、塗りつぶしの塗りつぶしのみをサポートしているように見えますが、グラデーション塗りつぶし(実際にはアニメート可能なグラデーション)が必要です。

CAShapeLayerに関係する他のすべて(シャドウ、シェイプ、ストロークカラー、アニメート可能なシェイプパス)は素晴らしいです。

CAShapeLayer内にCAGradientLayerを配置するか、実際にCAShapeLayerをGradientLayerのマスクとして設定し、両方をコンテナーレイヤーに追加しようとしましたが、これらは正しい結果をもたらしません。

CAShapeLayerをサブクラス化する必要がありますか、それとももっと良い方法がありますか?

ありがとう。

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

uikit - 複数の CGpath から CAShapeLayer を構築する

私はパスから彼の形を取る CAShapeLayer を持っています。これにより、移動や回転などの操作が可能なレイヤー オブジェクトが作成されます。私の問題は、レイヤーオブジェクトを複数のパスで構成する必要があることです。たとえば、米国の地図を想像してください。メインシェイプとアラスカがあります。両方の形状は接続されていませんが、同じエンティティであり、レイヤーを移動すると米国とアラスカの両方が一緒に移動するように、単一の CAShapeLayer 内の単一のオブジェクトである必要があります。

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

iphone - CAShapeLayer hitTest touch

CAShapeLayerがhitTestに応答しない理由がわかりません

この関数は常に行きます//タッチは外にあります

CAShapeLayerのタッチを検出するにはどうすればよいですか?