問題タブ [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.
iphone - CAShaperLayer -renderInContextが機能しませんか?
次のコードを使用して、CoreAnimationレイヤーからUIImageを作成できます。
このコードは私のCALayer派生クラスにあります。私が遭遇している問題は、結果の画像にレンダリングされない私のレイヤーの子レイヤーである2つのCAShapeLayersがあることです。標準のCALayerを子として追加すると、正常にレンダリングされます。Appleのドキュメントによると:
レシーバーとそのサブレイヤーを指定されたコンテキストにレンダリングします。
また、iPhoneOS2.0以降で利用可能になっているとも書かれています。足りないものがあるのか、レーダーを提出する必要があるのか疑問に思います。
子CAShapeLayersが画像に引き付けられないようにするためのアイデアはありますか?
ありがとう。
iphone - CAShapeLayer がインターフェイスの回転を遅くする
カスタム描画コードをビューから に移動しようとしていますCAShapeLayer
。これは、サブレイヤーとして元のビューの に追加されますCALayer
。これもうまく機能しますが、デバイスを回転させると、アニメーションが途切れ始めます。たとえば、フレームが元の向きで表示され、最終的な向きで表示され、その間に最大で 1 つのフレームが表示されます。まったく滑らかではありません。対応するスライドインとスライドアウトのアニメーションUIViewController
も少しぎくしゃくしています (ただし、それほどではありません)。
CAShapeLayer
その中のすべてpath
は 1CGPathAddRect
で、 に設定されopaque
、opacity
は で1.0f
あり、fillColor
は不透明な青に設定されています。
ただし、ビュー メソッドでパスを直接描画するdrawRect
と、アニメーションはスムーズになります。CAShapeLayer
だから、ローテーション中にアニメーション化されることと関係があると思います。
これらのぎこちなさを取り除く方法、またはCAShapeLayer
アニメーション時に単に非表示にする方法を教えていただけますか? s を直接描画するだけに戻ることは、私にはオプションではありません。これは、そのパスをアニメーション化CGPath
する機能に依存しているためです(ビューを回転させようとしてもアニメーション化されません)。CAShapeLayer
/update: これは、回転するUIViewController
s ビューに のサブクラスを持つCAGradientLayer
ビューlayerClass
(背景としてグラデーション レイヤーを持つビューなど) が含まれている場合にも発生します。
乾杯
ミスターメイジ
iphone - CAShapeLayerパスはアニメーション後に消えます-同じ場所にとどまる必要があります
StackOverflowのヘルプのおかげで、現在CAShapeLayerでパスをアニメーション化して、移動するスプライトから画面上の別の移動するポイントを指す三角形を作成しています。
アニメーションが完了すると、三角形が画面から消えます。このコードは各スプライトに対して0.1秒ごとに実行されるため、非常に短い期間を使用しています。その結果、赤い三角形は正しく追跡されますが、すばやく点滅するか、完全には表示されません。期間を長くすると、三角形が長く留まることがわかります。
tovalue
ある場所から次の場所にアニメーション化するためにメソッドが再度呼び出されるまで、三角形を現在のパス()で画面に表示したままにするにはどうすればよいですか?removeOnCompletionとremoveAllAnimationsを設定しようとしましたが、役に立ちませんでした。
以下のコード:
iphone - iPhone OS 3.0でCAShapeLayerに影を落とすにはどうすればよいですか?
パス付きのCAShapeLayerを使用しています。今度は、厚さ約10単位の滑らかな影を投げたいと思います。
最初に:ええ、私は11個のCAShapeLayerオブジェクトを作成することができ、毎回、パスのアウトラインを1単位ずつ増やし、反復ごとに異なる色とアルファを追加します。しかし、この方法では、メモリフットプリントが大きくなります。これは、画面サイズが半分であり、これは、メモリに画面サイズが半分のビットマップの11倍になることを意味します。
したがって、iPhone OS 3.2以降、CALayerでこれらの気の利いたシャドウプロパティを使用できるようになりました。しかし、私はOS3.0に固執したいと思います。それで、上記の厄介なもの以外に、どのようなオプションがありますか?
iphone - CAShapeLayer の content プロパティに CGImage を追加できますか?
次のようなlayerClassオーバーライドを持つカスタムビューがあります。
次のように、contents プロパティに CGImage を追加できるようにしたいと考えています。
設定する必要がある他のプロパティ、またはアニメーション用の画像のコンテンツをレンダリングするためにシェイプ レイヤーを取得する他の方法はありますか?
iphone - CAShapeLayerの最大サイズ?
画像の上に半透明の形を描画しようとしています。
UIView
レイヤーのコンテンツが画像に設定され、CAShapeLayer
サブレイヤーのパスがシェイプに設定されているがあります。のズームの子であるUIViews
親の中にこれらのいくつかがあります。UIView
UIScrollView
iPhoneではすべて問題ありませんが、iPadでズームインすると、UIViews
かなり大きくなり、CAShapeLayers
消えます。ただし、画像は正常に表示されます。サイズの問題だと思ったCAShapeLayers
ので、2つに分けて左右に分けました。これで、ユーザーが実際にズームインしない限り、両方が表示されます。たとえば、最大ズームを超えて「ピンチを解除」している間は、跳ね返る直前です。
私をさらに分割するCAShapeLayers
ことは実行可能ですが、少し面倒です。だから、私はいくつかの質問があります:
- の最大サイズの制約はあり
CAShapeLayers
ますか?レイヤーの画像コンテンツに適用されないのはなぜですか? CAShapeLayers
ズームピンチ中に再描画するのはなぜUIScrollView
ですか?ズームビュー全体(UIScrollView's
直接の子)をインチの間にラスタライズするべきではありませんか?どうすればそうできますか?
path - Photoshop/Illustrator でパスを描画し、iOS で使用する
プログラムでパスを描画するよりも便利なパスの描画方法を探しています。Photoshop (または Illustrator) でパスを描画し、そのパスを iPhone に取得して CAKeyframeAnimation で使用する方法はありますか? たとえば、ポイント データをエクスポートするか、.ai ファイルをインポートしますか?
iphone - CAShapeLayerにグラデーションを適用する
CAShapeLayerにグラデーションを適用した経験はありますか?CAShapeLayerは素晴らしいレイヤークラスですが、塗りつぶしの塗りつぶしのみをサポートしているように見えますが、グラデーション塗りつぶし(実際にはアニメート可能なグラデーション)が必要です。
CAShapeLayerに関係する他のすべて(シャドウ、シェイプ、ストロークカラー、アニメート可能なシェイプパス)は素晴らしいです。
CAShapeLayer内にCAGradientLayerを配置するか、実際にCAShapeLayerをGradientLayerのマスクとして設定し、両方をコンテナーレイヤーに追加しようとしましたが、これらは正しい結果をもたらしません。
CAShapeLayerをサブクラス化する必要がありますか、それとももっと良い方法がありますか?
ありがとう。
uikit - 複数の CGpath から CAShapeLayer を構築する
私はパスから彼の形を取る CAShapeLayer を持っています。これにより、移動や回転などの操作が可能なレイヤー オブジェクトが作成されます。私の問題は、レイヤーオブジェクトを複数のパスで構成する必要があることです。たとえば、米国の地図を想像してください。メインシェイプとアラスカがあります。両方の形状は接続されていませんが、同じエンティティであり、レイヤーを移動すると米国とアラスカの両方が一緒に移動するように、単一の CAShapeLayer 内の単一のオブジェクトである必要があります。
iphone - CAShapeLayer hitTest touch
CAShapeLayerがhitTestに応答しない理由がわかりません
この関数は常に行きます//タッチは外にあります
CAShapeLayerのタッチを検出するにはどうすればよいですか?