問題タブ [cagradientlayer]

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

ios - 可能な限り単純なユースケースで、CAGradientLayerが「exc_bad_access」でクラッシュする

次のコードのみを含むプレーンなUIViewサブクラス:

EXC_BAD_ACCESSを使用してランタイムを強制終了します(いいえ、要求する前にゾンビはありません)。

また、CAGradientLayerが過剰にリリースされることはありません。レイヤーに複数のフローティング保持を配置しても効果はありません。

(ちなみに、これまで行ってきたどのプロジェクトでも、CAGradientLayerが実際に機能するのを見たことがありません。呪われていると思います:)。アニメーション化されたグラデーションが必要な場合を除いて、これは使用しません。AppleのCGGradientクラスはconst配列のみをサポートしているため、アニメーションコードはひどくバグが発生しやすくなります)

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

ios - CAGradientLayerを別のCALayerのマスクとして適用するにはどうすればよいですか?

CALayerを持つビューがあります。CAGradientLayerを作成し、それをそのビューのCALayerのマスクとして適用しても、何も起こりません。なんで?

ビューの-initWithFrame:でこれを行います:

交換した場合

次に、グラデーションが表示されます。黒から白までです。

トリックは何ですか?

0 投票する
5 に答える
34434 参照

iphone - UIView 透明グラデーション

iOS で任意の UIView を指定した場合、Core Graphics (CAGradientLayer が思い浮かびます) を使用して「前景透明」グラデーションを適用する方法はありますか?

背景が UIColor よりも複雑なため、標準の CAGradientLayer は使用できません。また、サブビューが親の垂直スクロールビューに沿ってスクロールされると背景が変化するため、PNG をオーバーレイすることもできません (画像を参照)。

エレガントではないフォールバックがあります。親スクロールビューがスクロールされると、uiview でサブビューをクリップし、事前にレンダリングされた背景のグラデーション png を移動します。

透明な uiview グラデーションの問題

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

ios - カスタム CAGradientLayer がアニメーション化しない

CAGradientLayer のカスタム クラスを作成しました (放射状グラデーション オプションを追加)。動作しますが、色をアニメーション化できない理由がわかりません。

これが私のコードです。

アニメーションは単純な CABasicAnimation で、toValue を色付きの新しい配列に設定します。

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

iphone - CAGradientLayerのアニメーション

私が使用している...

...ボタンで線形塗りつぶしを実行します。問題は、(UIView beginAnimationsを使用して)フレームサイズをアニメーション化すると、CAGradientLayerが消え、フレームの残りの部分と一緒にアニメーション化されないことです。これが機能しない理由はありますか?

線形フェードを行うためのより良い方法はありますか?

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

objective-c - CAGradientLayer 型 -- ポイントは何ですか?

iOS CAGradientLayer docsによると、type プロパティには単一の有効な値 kCAGradientLayerAxial しかありません。これはたまたまデフォルトでもあります。drawLayer: inContext をオーバーライドせずにラジアル CAGradientLayer を実装したいと考えており、kCAGradientLayerRadial に似たものを見つけたいと思っていたので、このプロパティの目的は私にとって謎です。どんなイルミネーションも大歓迎です。

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

iphone - CALayer がデバイスで背景色をレンダリングしない、シミュレーターで動作する

レイヤーからカスタム ボタンを作成しました。でたくさんのレイヤーを作成しますinit。それらを変更*するまで、すべてが期待どおりに機能します。問題が発生するのは実際のデバイスのみであり、シミュレーターではコードが期待どおりに動作します。

needsDisplay と needsLayout を に設定して、レイヤーを強制的にレンダリングしようとしましたYES

シミュレーター

シミュレーターのスクリーンショット

デバイス

デバイスのスクリーンショット

テスト

iOS 5.1 と 4.2 でテストしましたが、結果は同じでした。シミュレーターのバージョン 4.1、4.2、および 5.1 で同じように動作するようです

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

objective-c - CAGradientLayerを追加し、UIViewのdeallocでこれを取得します:[CALayerリリース]:割り当て解除されたインスタンスに送信されるメッセージ

あっちこっち、

カスタムUIViewがあります。このビューはアクティビティインジケーターとして機能しますが、UIActivityIndi​​catorViewの上のラベルとして機能します。initで、CAGradientLayerを追加します。それを割り当てて初期化し、UIViewレイヤープロパティのサブレイヤーとしてインデックス0に挿入します。私のdeallocメソッドが呼び出されたときに、コンソールに次のメッセージが表示されました。

私のコード:

誰でもアイデアがあります。グラデーションレイヤーの割り当てと初期化を行っているので、それを解放する責任があります。いくつかのivarを割り当てて初期化し、割り当てることができるはずです。おそらく、retainを使用してプロパティを作成する必要があります。

ありがとう、

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

iphone - CALayer setCornerRadius はまだ白い角を下に残します

MKMapViewの上に重ねることができるラベルが付いた単純なグラデーションを作成しようとしています。SO を調べたところ、UIView で drawRect をオーバーライドするのではなく、CAGradientLayer を使用できることがわかりました。やってみようと思いました。私のviewDidLoadでは、これを行います:

左上隅と右上隅の下にこの白い部分があることを除いて、それは正しい道にあります。これには理由がありますか?UIViewsで以前に起こったので、レイヤーのbackgroundColorなどを設定しなかったためだと思いましたが、そうではないようです。

ここに画像の説明を入力

ありがとう!

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

objective-c - グラデーションオーバーレイ付きのUIPageViewController?

本のようなアプリを作成する必要があり、UIPageViewController を使用したいと考えています。(iPad、2 ページの水平レイアウト (UIPageViewControllerSpineLocationMid)。

画面をより魅力的にするために、コントローラーのビューを画像または CAGradientLayer でオーバーレイして背骨を見えるようにしたいと考えています。

pageViewController にサブビューを追加してみましたが、アニメーション遷移が始まると削除されるようです。

誰かがアイデアを持っていますか?